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:
Claude committed 2025-11-14 09:58:13 +00:00
1 parent 4da0537c14
commit 6b5f4081b2
17 files changed
+1120 -416

No files matched your search

Regular → Executable
+79 -1
View File
@@ -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