Migrationen im Entity-Framework-Core zusammenführen

asp.net-core c# entity-framework entity-framework-core

Frage

Ist es möglich, alle Migrationsdateien in einer zusammenzuführen?

Ich habe die erste Migration erstellt.

dotnet ef migrations add InitialMigration

Quelle

Wann immer ich Modellwechsel habe, erstelle ich ein neues Migrationsupdate.

Aber jetzt habe ich zu viele Migrationsupdate-Dateien. Ist es möglich, alle Migrationsdateien zu einer zusammenzuführen?

Natürlich ist die Drop-Datenbank keine Option, ich muss Daten bewahren!

Akzeptierte Antwort

EF 6.X hat eine Option IgnoreChanges . Das passt perfekt zu Ihrem Szenario. Leider ist diese Funktion im EF-Kern nicht verfügbar.

Es gibt jedoch eine Problemumgehung.

Schritt 1: Löschen Sie alle Migrationsskripts im Migrationsordner.

Schritt 2: In der Paket-Manager-Konsole: Ausführen

PM> Add-Migration InitialCreate

Schritt 3: Löschen Up() Code der Methoden Up() und Down() . Behalten Sie diese Methoden an einem anderen Ort, bevor Sie dies tun, da wir sie in Schritt 5 erneut benötigen.

Schritt 4: ausführen:

 PM> Update-Database

Es wird ein neuer Datensatz in __EFMigrationsHistory Tabelle __EFMigrationsHistory .

Schritt 5: Füllen Sie danach die Up() und Down() Methode des obigen Migrationsskripts (dh .._InitialCreate ) aus dem Inhalt, der an einem sicheren Ort ab Schritt 3 aufbewahrt wird .

Das ist es. Jetzt haben Sie nur noch eine Migrationsdatei :)

Hinweis: EF-Core mit Package Manager Console (PM): Package Manager Console


Beliebte Antwort

Eine Möglichkeit besteht darin, alle Migrationsdateien physisch zu entfernen und neue hinzuzufügen. Wenn sich Ihre Migrationen im Ordner "Migrations" befinden, können Sie sie einfach löschen, andernfalls müssen Sie auch Ihre "ModelSnapshot" -Datei löschen. Ich denke, dass dieser Ansatz Ihr Problem lösen kann.



Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow