mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-12 01:39:47 +02:00
Ajout des outils de migration et documentation: - scripts/verify-postgres-connection.js: Test connexion PostgreSQL - scripts/run-migration.sh: Script automatique de migration - docker-compose.yml: Volume mount pour accès SQLite depuis container - MIGRATION-STEPS.md: Guide pas-à-pas complet de migration La migration peut maintenant être lancée avec: docker-compose build notes-app docker-compose up -d bash scripts/run-migration.sh
4.9 KiB
4.9 KiB
Migration SQLite → PostgreSQL - Instructions
✅ Ce qui a été préparé
- Docker-compose configuré avec PostgreSQL sur port 5499
- Scripts de migration créés et prêts
- Configuration PostgreSQL complète dans
config/database-postgres.js - Volume monté pour accéder à la base SQLite depuis le container
🚀 Étapes de migration
Option A: Script automatique (RECOMMANDÉ)
# 1. Reconstruire l'image Docker avec les nouvelles dépendances
docker-compose build notes-app
# 2. Démarrer les containers
docker-compose up -d
# 3. Attendre que PostgreSQL soit prêt (30 secondes)
docker-compose logs -f postgres | grep "ready to accept connections"
# Appuyez sur Ctrl+C quand vous voyez le message
# 4. Lancer la migration automatique
bash scripts/run-migration.sh
Option B: Commandes manuelles
# 1. Reconstruire et démarrer
docker-compose build notes-app
docker-compose up -d
# 2. Vérifier que PostgreSQL est accessible
docker exec notes-todo-app node scripts/verify-postgres-connection.js
# 3. Lancer la migration
docker exec -e SQLITE_PATH=/app/data-sqlite/notes.db \
notes-todo-app node scripts/migrate-sqlite-to-postgres.js
# 4. Vérifier les données migrées
docker exec noteflow-postgres psql -U noteflow -d noteflow -p 5499 \
-c "SELECT COUNT(*) FROM rss_articles;"
🔍 Vérification après migration
Vérifier les articles RSS
# Compter les articles dans PostgreSQL
docker exec notes-todo-app node -e "
const { Pool } = require('pg');
const pool = new Pool({
connectionString: process.env.DATABASE_URL
});
pool.query('SELECT COUNT(*) FROM rss_articles').then(r => {
console.log('Articles RSS:', r.rows[0].count);
pool.end();
});
"
Vérifier les flux RSS
# Compter les flux configurés
docker exec notes-todo-app node -e "
const { Pool } = require('pg');
const pool = new Pool({
connectionString: process.env.DATABASE_URL
});
pool.query('SELECT COUNT(*) FROM rss_feeds').then(r => {
console.log('Flux RSS:', r.rows[0].count);
pool.end();
});
"
🎯 Test du système RSS
1. Forcer une mise à jour des flux
# Exécuter manuellement le scheduler RSS
docker exec notes-todo-app node services/rss-scheduler-v2.js
2. Vérifier dans l'interface web
Ouvrez votre navigateur sur http://localhost:2222 et vérifiez:
- Les articles RSS s'affichent
- Les nouveaux articles apparaissent (pas seulement ceux du 12 nov)
- L'auto-refresh fonctionne (2 minutes)
📊 Logs et diagnostic
Voir les logs du container
# Logs de l'application
docker-compose logs -f notes-app
# Logs PostgreSQL
docker-compose logs -f postgres
Entrer dans le container pour debug
# Shell dans le container
docker exec -it notes-todo-app sh
# Puis dans le container:
node -e "console.log(process.env.DATABASE_URL)"
ls -la /app/data-sqlite/
🧹 Nettoyage après migration réussie
Une fois que TOUT fonctionne parfaitement:
# Sauvegarder l'ancienne base SQLite
cp data/notes.db data/notes.db.backup-$(date +%Y%m%d)
# Optionnel: Supprimer l'ancienne base
# rm data/notes.db
❌ En cas de problème
Problème: Container ne démarre pas
# Voir les erreurs
docker-compose logs notes-app
# Reconstruire proprement
docker-compose down
docker-compose build --no-cache notes-app
docker-compose up -d
Problème: Connexion PostgreSQL refusée
# Vérifier que PostgreSQL écoute sur le bon port
docker exec noteflow-postgres netstat -tlnp | grep 5499
# Vérifier les variables d'environnement
docker exec notes-todo-app env | grep DATABASE
Problème: Migration échoue
# Vérifier que le fichier SQLite est accessible
docker exec notes-todo-app ls -la /app/data-sqlite/notes.db
# Relancer avec plus de détails
docker exec -e SQLITE_PATH=/app/data-sqlite/notes.db \
notes-todo-app node scripts/migrate-sqlite-to-postgres.js
🔄 Rollback vers SQLite
Si vous voulez revenir à SQLite temporairement:
- Arrêter les containers:
docker-compose down - Modifier
docker-compose.yml: commenter la sectionpostgres - Modifier l'environnement de
notes-apppour utiliser SQLite - Redémarrer:
docker-compose up -d
📝 Notes importantes
- La base SQLite est montée en lecture seule (
:ro) pour éviter les modifications accidentelles - Le container PostgreSQL utilise un volume persistant
postgres_data - Les données ne sont PAS perdues si vous redémarrez les containers
- Le port 5499 est exposé sur le host pour debug si besoin
🎉 Prochaine étape
Une fois la migration réussie, consultez:
QUICK-START-POSTGRES.mdpour l'utilisation quotidienneMIGRATION-POSTGRESQL.mdpour la documentation technique complète