#!/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 # 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