2013-10-02 3 views
20

Ich versuche, SQL-Skript zu generieren, die eine Datenbank für mich erstellen wird. Bisher habe ich Folgendes versucht:Entity Framework Migrationen - SQL-Skript des aktuellen Datenbankmodells generieren

Aber beide geben mir Skripte, die von der ersten Migration bis zum letzten gehen. Und es gibt keinen Anfangszustand der Datenbank, der die Erstellung der Datenbank selbst enthalten sollte, und eine einzelne Tabelle, die vorhanden war, als ich Migrationen zu meinem Projekt hinzufügte.

Wie kann ich mein Modell jetzt neu erstellen, wenn Migrationen mir kein vollständiges SQL-Skript geben?

+0

Wie ich es verstehe, sollte es immer einen Ausgangszustand geben. Paar Fragen; Ist es möglich, dass Sie eine Migrationsdatei versehentlich entfernt haben? Wenn nicht, welche Fehler gibt das Migrationshilfsprogramm dann, wenn Sie eine Datenbank aktualisieren, ohne -script zu verwenden? Die Erstellung der Datenbank wird normalerweise nicht in den Migrationen angezeigt, da der Name von der Verbindungszeichenfolge abhängig ist, obwohl Migrationsdienstprogramme bei Bedarf häufig Datenbanken mit diesen Informationen erstellen. Was enthält dein Skript dann? Alles außer der ersten Tabelle, die Sie erwähnt haben? – tne

Antwort

43

Versuchen:

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

, dass das Skript aus der ursprünglichen Datenbank in die Migration umfassen sollte gezielt. Zumindest sollte die Tabelle "MigrationHistory" haben.

Sie können auch versuchen, Ihre Migration neu erstellt von:

1) zurück in die Ausgangsdatenbank zurückkehrend. Wenn alles gut geht, sollte dies alle Tabellen aus Ihrer Datenbank entfernen.

Update-Database -TargetMigration: $InitialDatabase 

2) Löschen Sie alle Ihre Migrationsdatei im Migrationsordner. Sie müssen die Konfigurationsklassendatei nicht löschen.

3) Fügen Sie eine neue Migration hinzu. Dies würde jedoch eine Migrationsdatei von der ursprünglichen Datenbank zu Ihrem neuesten Modell erstellen.

Add-Migration -Name: [MigrationName] 

Hoffentlich hilft das. Ich schlage auch vor, this Blogpost anzuschauen. Beachten Sie Tipp Nr. 5, der lautet: "Löschen Sie nie eine Migration, bevor Sie sie ablehnen (Down)". Nach meiner Erfahrung verursacht dies Probleme mit der Migration, wenn sie nicht befolgt wird.

Verwandte Themen