2013-10-02 13 views
20

Sto provando a generare script sql che creerà per me un database. Finora ho provato questo:Migrazioni del framework di entità: genera lo script sql del modello di database corrente

Update-Database -Script -SourceMigration: $InitialDatabase 
Update-Database -Script -SourceMigration:0 

Ma entrambi mi stanno dando script che iniziano dalla prima migrazione alla fine. E non esiste uno stato iniziale del database, che dovrebbe includere la creazione del database stesso e una tabella singola che era presente quando ho aggiunto le migrazioni al mio progetto.

Quindi, come posso ricreare il mio modello ora, quando le migrazioni non mi danno lo script sql completo?

+0

Come ho capito, ci dovrebbe sempre essere uno stato iniziale. Domande di coppia; È possibile che tu abbia rimosso un file di migrazione per errore? In caso contrario, quali errori fornisce l'utilità di migrazione durante l'aggiornamento di un database senza utilizzare -script? La creazione del database di solito non compare nelle migrazioni in quanto il nome dipende dalla stringa di connessione, sebbene le utilità di migrazione spesso creino database in base alle necessità utilizzando tali informazioni. Cosa contiene allora il tuo script? Tutto tranne il primo tavolo che hai menzionato? – tne

risposta

43

Prova:

Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration: [MigrationName] 

Questo dovrebbe includere lo script dal database iniziale per la migrazione mirato. Per lo meno dovrebbe avere la tabella "MigrationHistory".

Potete anche provare a ricreare i tuoi migrazioni da:

1) Ripristino al database iniziale. Se tutto va bene, questo dovrebbe rimuovere tutte le tabelle dal tuo database.

Update-Database -TargetMigration: $InitialDatabase 

2) Eliminare tutti i file di migrazione all'interno della cartella Migrazioni. Non è necessario eliminare il file di classe di configurazione.

3) Aggiungere una nuova migrazione. Tuttavia, ciò creerebbe un file di migrazione dal database iniziale al modello più recente.

Add-Migration -Name: [MigrationName] 

Speriamo che questo aiuti. Suggerisco anche di guardare il post del blog this. Prendi nota del suggerimento n. 5, che è "Non eliminare mai una migrazione prima di eseguire il backup (Giù)". Nella mia esperienza questo causa problemi con la migrazione se non viene seguito.

Problemi correlati