mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-11 17:29:37 +02:00
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)
This commit is contained in:
17 files changed
+1120
-416
No files matched your search
Regular → Executable
+79
-1
@@ -1,6 +1,84 @@
|
||||
#!/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
|
||||
exec node server.js
|
||||
|
||||
# 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
|
||||
Reference in new issue
Block a user