#!/bin/bash # Script de synchronisation automatique des migrations # Applique toutes les migrations SQL manquantes et synchronise le schĂ©ma set -e echo "🔄 [SYNC] Synchronisation automatique des migrations" echo "==================================================" # Fonction de logging log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" } # VĂ©rification de la connexion base de donnĂ©es if [ -z "$DATABASE_URL" ]; then log "❌ DATABASE_URL non dĂ©fini" exit 1 fi log "🔍 Connexion Ă  la base de donnĂ©es..." # Test de connexion if ! psql "$DATABASE_URL" -c "SELECT 1;" > /dev/null 2>&1; then log "❌ Impossible de se connecter Ă  la base de donnĂ©es" exit 1 fi log "✅ Connexion base de donnĂ©es rĂ©ussie" # VĂ©rifier si la table dlc_products existe log "🔍 VĂ©rification de la table dlc_products..." if ! psql "$DATABASE_URL" -tAc "SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_name='dlc_products');" | grep -q "t"; then log "❌ Table dlc_products non trouvĂ©e - exĂ©cution de la migration initiale nĂ©cessaire" # Appliquer la migration initiale depuis 0000_flashy_blur.sql if [ -f "migrations/0000_flashy_blur.sql" ]; then log "🔄 Application de la migration initiale..." psql "$DATABASE_URL" -f "migrations/0000_flashy_blur.sql" log "✅ Migration initiale appliquĂ©e" else log "❌ Fichier de migration initiale non trouvĂ©" exit 1 fi fi # VĂ©rifier si les colonnes stock_epuise existent log "🔍 VĂ©rification des colonnes DLC stock Ă©puisĂ©..." COLUMNS_EXIST=$(psql "$DATABASE_URL" -tAc " SELECT COUNT(*) FROM information_schema.columns WHERE table_name='dlc_products' AND column_name IN ('stock_epuise', 'stock_epuise_by', 'stock_epuise_at'); ") if [ "$COLUMNS_EXIST" != "3" ]; then log "🔄 Application de la migration DLC stock Ă©puisĂ© ($COLUMNS_EXIST/3 colonnes trouvĂ©es)..." # Appliquer la migration DLC psql "$DATABASE_URL" -f "migrations/002_add_dlc_stock_epuise.sql" if [ $? -eq 0 ]; then log "✅ Migration DLC stock Ă©puisĂ© appliquĂ©e" else log "❌ Erreur lors de la migration DLC" exit 1 fi else log "✅ Colonnes DLC stock Ă©puisĂ© dĂ©jĂ  prĂ©sentes" fi # VĂ©rification finale log "🔍 VĂ©rification finale des colonnes..." FINAL_CHECK=$(psql "$DATABASE_URL" -tAc " SELECT column_name FROM information_schema.columns WHERE table_name='dlc_products' AND column_name IN ('stock_epuise', 'stock_epuise_by', 'stock_epuise_at') ORDER BY column_name; ") if [ $(echo "$FINAL_CHECK" | wc -l) -eq 3 ]; then log "✅ Toutes les colonnes DLC sont prĂ©sentes:" echo "$FINAL_CHECK" | sed 's/^/ - /' else log "❌ Colonnes manquantes dĂ©tectĂ©es" exit 1 fi log "🎉 Synchronisation des migrations terminĂ©e avec succĂšs"