155

Per qualche motivo, le mie migrazioni sembrano essere state confuse/danneggiate/qualsiasi cosa. Sono al punto in cui voglio ricominciare da capo, quindi c'è un modo per annullare completamente tutte le migrazioni, cancellare la cronologia ed eliminare il codice di migrazione, quindi sono tornato al punto di partenza?Entity Framework - Start Over - Annulla/Ripristina tutte le migrazioni

per esempio) o PM> Disable-MigrationsRollback-Migrations

Non voglio di "aggiornare" ad una fase di migrazione originale (vale a dire qualcosa come un InitialSchema bersaglio), perché non riesco a trovare più.

risposta

331

Potete rollback a qualsiasi migrazione utilizzando:

Update-Database -TargetMigration:"MigrationName" 

Se volete far ritirare tutte le migrazioni che è possibile utilizzare:

Update-Database -TargetMigration:0 

o equivalenti:

Update-Database -TargetMigration:$InitialDatabase 

In alcuni casi puoi anche cancellare il database e tutte le classi di migrazione.

+6

come al solito, sei il migliore. – drzaus

+0

mi hai salvato un sacco di problemi. Grazie. –

+0

Bella risposta! :) – Rushino

8

Per essere chiari, se si utilizza LocalDb, quando si desidera iniziare da zero basta eliminare il database tramite Database Explorer e quindi digitare enable-migrations -force nella console di Gestione pacchetti. Non eliminare il database tramite la cartella App_Data o si avrà il seguente issue.

+2

Fai attenzione quando si esegue questa operazione poiché sovrascrive le tue Migrations \ Configuration.cs senza preavviso! – cgatian

+0

Grazie per l'avvertimento, ho praticamente lasciato cadere il codice per prima cosa dopo un po ', è bello avere tutto il codice in una volta, posto, avere il controllo del codice sorgente per il tuo database di per sé ma non ho visto nessun altro grande beneficio e ritorna al database prima. Io uso Red Gate Sql Confronta per tenere traccia di tutti i delta. –

1

Per Entity Framework Core:

Update-Database -Migration:0 
Remove-Migration 
Problemi correlati