netgescon-master/docs/03-scripts-automazione/fix-migrations.sh
Pikappa2 480e7eafbd 🎯 NETGESCON - Setup iniziale repository completo
📋 Commit iniziale con:
-  Documentazione unificata in docs/
-  Codice Laravel in netgescon-laravel/
-  Script automazione in scripts/
-  Configurazione sync rsync
-  Struttura organizzata e pulita

🔄 Versione: 2025.07.19-1644
🎯 Sistema pronto per Git distribuito
2025-07-19 16:44:47 +02:00

59 lines
2.0 KiB
Bash

#!/bin/bash
# Script per riparare le migration duplicate
# Uso: ./fix-migrations.sh
echo "🔧 Riparazione migration duplicate..."
REMOTE_USER="michele"
REMOTE_HOST="192.168.0.43"
REMOTE_PATH="/var/www/netgescon"
echo "📋 Verifica stato migration sul server remoto..."
ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan migrate:status"
echo ""
echo "🗑️ Opzioni disponibili:"
echo "1. Rollback dell'ultima migration fallita"
echo "2. Reset completo database (ATTENZIONE: cancella tutti i dati)"
echo "3. Rimuovi solo la tabella 'rate' problematica"
echo "4. Verifica solo lo stato senza modifiche"
read -p "Scegli un'opzione (1-4): " choice
case $choice in
1)
echo "🔄 Rollback ultima migration..."
ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan migrate:rollback --step=1"
;;
2)
echo "⚠️ ATTENZIONE: Questo cancellerà tutti i dati!"
read -p "Sei sicuro? (y/N): " confirm
if [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then
echo "🗑️ Reset completo database..."
ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan migrate:fresh --seed"
else
echo "❌ Operazione annullata"
fi
;;
3)
echo "🗑️ Rimozione tabella 'rate'..."
ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan tinker --execute=\"DB::statement('DROP TABLE IF EXISTS rate'); echo 'Tabella rate rimossa';\""
echo "🔄 Riprova migration..."
ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan migrate"
;;
4)
echo "📊 Stato attuale migration:"
ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan migrate:status"
echo ""
echo "🗃️ Tabelle presenti nel database:"
ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan tinker --execute=\"DB::select('SHOW TABLES')\""
;;
*)
echo "❌ Opzione non valida"
exit 1
;;
esac
echo "✅ Operazione completata"