mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-12 01:39:47 +02:00
5.2 KiB
5.2 KiB
🚀 Quick Start: Migration PostgreSQL
Migration rapide de NoteFlow vers PostgreSQL en 5 minutes.
Pourquoi cette migration?
Votre problème actuel:
[INFO]: ✅ 18 nouveaux articles
Mais... rien ne s'affiche dans l'interface 😱
Cause: SQLite avec multiples fichiers DB, impossible de savoir laquelle est utilisée.
Solution: PostgreSQL = UNE SEULE source de vérité.
📋 Installation en 5 Étapes
1️⃣ Installer dépendances
npm install
2️⃣ Activer PostgreSQL
cp config/database-postgres.js config/database.js
3️⃣ Créer fichier .env (optionnel)
cat > .env <<EOF
POSTGRES_PASSWORD=votre_password_securise
JWT_SECRET=votre_jwt_secret
EOF
4️⃣ Démarrer PostgreSQL
# Démarrer PostgreSQL seul
docker-compose up -d postgres
# Attendre 10 secondes qu'il démarre
sleep 10
# Vérifier que c'est OK
docker-compose logs postgres | grep "ready"
5️⃣ Migrer vos données
Trouvez d'abord votre vraie DB SQLite:
# Option A: Chercher dans tout le système
find / -name "notes.db" 2>/dev/null
# Option B: Regarder les logs
grep "Base de données connectée" data/app.log
# Vous devriez trouver quelque chose comme:
# /app/data/notes.db
# OU
# /var/lib/docker/volumes/xxx/notes.db
Puis migrez:
# Remplacez /path/to par le vrai chemin trouvé
SQLITE_PATH=/path/to/notes.db node scripts/migrate-sqlite-to-postgres.js
# Exemple si dans Docker:
SQLITE_PATH=/var/lib/docker/volumes/noteflow_notes_data/_data/notes.db node scripts/migrate-sqlite-to-postgres.js
# Exemple si local:
SQLITE_PATH=./data/notes.db node scripts/migrate-sqlite-to-postgres.js
Vous verrez:
==================== MIGRATION SQLite → PostgreSQL ====================
✓ SQLite connecté: /path/to/notes.db
✓ PostgreSQL connecté
📊 Début de la migration...
📋 Migration table: users
✓ Table "users": 2/2 lignes migrées
📋 Migration table: rss_articles
✓ Table "rss_articles": 127/127 lignes migrées
...
========================================================
✅ Migration terminée!
Total: 250 lignes migrées
========================================================
6️⃣ Redémarrer l'application
# Rebuild avec PostgreSQL
docker-compose build notes-app
# Tout redémarrer
docker-compose up -d
# Voir les logs
docker-compose logs -f notes-app
Vous devriez voir:
[INFO]: ✓ PostgreSQL connecté: postgresql://noteflow:***@postgres:5499/noteflow
[INFO]: ✓ Tables PostgreSQL créées
[INFO]: 🔄 === Début mise à jour RSS ===
[INFO]: ✅ 18 nouveaux articles
✅ Vérification
Tester PostgreSQL
# Se connecter
docker exec -it noteflow-postgres psql -U noteflow -d noteflow -p 5499
# Compter articles RSS
SELECT COUNT(*) FROM rss_articles;
# Voir les 5 derniers
SELECT title, pub_date FROM rss_articles ORDER BY pub_date DESC LIMIT 5;
# Quitter
\q
Tester l'application
- Ouvrir http://localhost:2222
- Login:
admin/admin - Vérifier que vos notes sont là
- Vérifier que les flux RSS s'affichent ✨
- Les nouveaux articles apparaissent dans les 2 minutes
🎯 Résultat
Avant (SQLite)
😱 Articles récupérés mais jamais affichés
😱 Impossible de déboguer
😱 Plusieurs fichiers DB, confusion totale
Après (PostgreSQL)
✅ Articles affichés immédiatement
✅ Une seule DB, pas de confusion
✅ Logs SQL pour debug
✅ Production-ready
🐛 Problème?
PostgreSQL ne démarre pas
docker-compose logs postgres
docker-compose down -v
docker-compose up -d postgres
App ne se connecte pas
docker-compose logs notes-app | grep -i postgres
docker-compose logs notes-app | grep -i error
Articles toujours pas affichés
# Vérifier que les articles sont en DB
docker exec -it noteflow-postgres psql -U noteflow -d noteflow -p 5499 \
-c "SELECT COUNT(*) FROM rss_articles;"
# Si 0, vérifier les flux
docker exec -it noteflow-postgres psql -U noteflow -d noteflow -p 5499 \
-c "SELECT id, title, enabled FROM rss_feeds;"
# Vérifier les logs RSS
docker-compose logs notes-app | grep RSS
📚 Documentation Complète
Voir MIGRATION-POSTGRESQL.md pour:
- Backup/Restore PostgreSQL
- Monitoring et performance
- Configuration avancée
- Rollback vers SQLite
- Dépannage complet
💡 Pro Tips
-
Toujours backup avant migration:
cp data/notes.db data/notes.db.backup -
Vérifier PostgreSQL est prêt:
docker-compose logs postgres | grep "ready" -
Voir les requêtes SQL en temps réel:
docker exec -it noteflow-postgres psql -U noteflow -d noteflow -p 5499 \ -c "SELECT query FROM pg_stat_activity WHERE state = 'active';" -
Backup automatique quotidien:
# Ajouter à crontab 0 2 * * * docker exec noteflow-postgres pg_dump -U noteflow noteflow | gzip > /backup/noteflow-$(date +\%Y\%m\%d).sql.gz
🎉 Votre système RSS va enfin fonctionner correctement avec PostgreSQL !