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