#!/bin/bash # Script per identificare e rimuovere migration duplicate # Uso: ./clean-migrations.sh echo "🔍 Ricerca migration duplicate..." MIGRATION_DIR="database/migrations" # Trova migration duplicate per nome di tabella echo "📋 Analisi migration duplicate:" # Trova file che creano la stessa tabella echo "🔍 Tabelle create multiple volte:" grep -l "create_.*_table" $MIGRATION_DIR/*.php | xargs basename -s .php | sort | uniq -d # Mostra tutte le migration in ordine cronologico echo "" echo "📅 Ordine cronologico migration:" ls -1 $MIGRATION_DIR/*.php | sort | sed 's/.*\///' | nl # Identifica pattern problematici echo "" echo "⚠️ Pattern problematici identificati:" # Cerca migration che droppano tabelle echo "🗑️ Migration che eliminano tabelle:" grep -l "drop.*table\|Schema::drop" $MIGRATION_DIR/*.php 2>/dev/null | sed 's/.*\///' || echo " Nessuna trovata" # Cerca migration che aggiungono foreign key echo "🔗 Migration che aggiungono foreign key:" grep -l "foreign\|constraint" $MIGRATION_DIR/*.php 2>/dev/null | sed 's/.*\///' || echo " Nessuna trovata" # Cerca migration con nomi simili echo "📛 Migration con nomi simili (potenziali duplicati):" ls $MIGRATION_DIR/*.php | sed 's/.*[0-9]_//' | sort | uniq -d | while read table; do echo " Tabella: $table" ls $MIGRATION_DIR/*$table | sed 's/.*\///' done echo "" echo "✅ Analisi completata!" echo "💡 Suggerimenti:" echo " - Rimuovi migration duplicate per la stessa tabella" echo " - Verifica che migration DROP vengano prima delle CREATE" echo " - Controlla che foreign key vengano aggiunte dopo la creazione tabelle"