Files
noteflow/docker-entrypoint.sh
T
Claude 6b5f4081b2 BREAKING: Migration complète vers PostgreSQL uniquement
🐘 NoteFlow utilise maintenant EXCLUSIVEMENT PostgreSQL

CHANGEMENTS MAJEURS:
==================

1. Base de données (config/database.js)
   ✅ Remplacé par PostgreSQL (backup SQLite créé)
   ✅ Toutes les routes et services mis à jour
   ✅ database-loader.js supprimé (plus nécessaire)

2. Migration automatique (docker-entrypoint.sh)
   ✅ Attend que PostgreSQL soit prêt
   ✅ Détecte si PostgreSQL est vide
   ✅ Migre automatiquement SQLite si présent
   ✅ Lance le serveur après migration

3. Package.json
   ✅ Description mise à jour (PostgreSQL)
   ✅ Keywords: postgresql au lieu de sqlite
   ✅ sqlite3 gardé uniquement pour migration

4. Documentation
   ✅ POSTGRESQL-ONLY.md: Guide complet PostgreSQL
   ✅ Commandes, dépannage, sécurité
   ✅ Instructions de migration

MIGRATION UTILISATEUR:
=====================

Au prochain démarrage Docker:
1. Le container détecte PostgreSQL vide
2. Cherche ./data/notes.db (si existe)
3. Migre AUTOMATIQUEMENT toutes les données
4. Démarre avec PostgreSQL

COMMANDES:
=========

docker-compose build
docker-compose up -d

→ Tout se fait automatiquement!

Les données SQLite sont conservées comme backup dans ./data/
mais l'application n'utilise plus que PostgreSQL.

FICHIERS MODIFIÉS:
=================
- config/database.js (PostgreSQL uniquement)
- docker-entrypoint.sh (migration automatique)
- server.js + 11 routes + 2 services
- package.json (description + keywords)
- Documentation complète: POSTGRESQL-ONLY.md

Cette migration garantit:
- Performance optimale
- Meilleure gestion de la concurrence
- Support production à grande échelle
- Pas de perte de données (migration auto)
2025-11-14 09:58:13 +00:00

85 lines
2.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/sh
set -e
echo "🚀 Démarrage de NoteFlow avec PostgreSQL"
echo "========================================"
# Créer les dossiers nécessaires
mkdir -p /app/data
mkdir -p /app/public/uploads
chmod -R 777 /app/data
chmod -R 777 /app/public/uploads
# Attendre que PostgreSQL soit prêt
echo ""
echo "⏳ Attente de PostgreSQL..."
until node -e "
const { Pool } = require('pg');
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
pool.connect()
.then(client => { client.release(); pool.end(); process.exit(0); })
.catch(() => process.exit(1));
" 2>/dev/null; do
echo " PostgreSQL n'est pas encore prêt, nouvelle tentative dans 2s..."
sleep 2
done
echo "✅ PostgreSQL est prêt"
echo ""
# Vérifier si la migration est nécessaire
echo "🔍 Vérification des données..."
# Vérifier si PostgreSQL contient des données
HAS_DATA=$(node -e "
const { Pool } = require('pg');
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
pool.query('SELECT COUNT(*) as count FROM users')
.then(result => {
pool.end();
console.log(result.rows[0].count);
process.exit(0);
})
.catch(() => {
pool.end();
console.log('0');
process.exit(0);
});
" 2>/dev/null)
if [ "$HAS_DATA" = "0" ]; then
echo "⚠️ PostgreSQL est vide"
# Vérifier si SQLite existe
if [ -f "/app/data-sqlite/notes.db" ]; then
echo ""
echo "📦 Base SQLite détectée: /app/data-sqlite/notes.db"
echo "🔄 Lancement de la migration automatique..."
echo ""
SQLITE_PATH=/app/data-sqlite/notes.db node scripts/migrate-sqlite-to-postgres.js
if [ $? -eq 0 ]; then
echo ""
echo "✅ Migration réussie!"
else
echo ""
echo "❌ Erreur lors de la migration"
echo "⚠️ L'application démarrera avec une base vide"
fi
else
echo "ℹ️ Aucune base SQLite à migrer"
echo "📝 Première installation - une base vide sera créée"
fi
else
echo "✅ PostgreSQL contient déjà des données ($HAS_DATA utilisateurs)"
fi
echo ""
echo "========================================"
echo "🚀 Démarrage du serveur NoteFlow..."
echo ""
# Démarrer le serveur Node.js
exec node server.js