Files
noteflow/QUICK-START-POSTGRES.md

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

  1. Ouvrir http://localhost:2222
  2. Login: admin / admin
  3. Vérifier que vos notes sont là
  4. Vérifier que les flux RSS s'affichent ✨
  5. 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

  1. Toujours backup avant migration:

    cp data/notes.db data/notes.db.backup
    
  2. Vérifier PostgreSQL est prêt:

    docker-compose logs postgres | grep "ready"
    
  3. 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';"
    
  4. 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 !