6

Ich habe EF 5 Code zuerst erfolgreich in meiner App verwendet. Ich habe ungefähr 40 Tische. Ich bin jedoch auf ein Problem gestoßen, bei dem Migrationen anscheinend richtig behandelt werden. Ich möchte EF also anweisen, das aktuelle Schema der Datenbank als neuen Ausgangspunkt zu behandeln und von hier aus zu managen. Auf diese Weise kann ich die erforderliche Schemaänderung manuell vornehmen und dann EF anweisen, von diesem Punkt im Wesentlichen von vorne zu beginnen.Entity Framework 5 Code First - Wie beginnt man neu?

Gibt es eine Möglichkeit, das kann ich tun? Ich nehme an, dass ich die Tabelle __MigrationHistory löschen oder den Inhalt entfernen muss. Aber ich bin mir nicht sicher, wie ich das am besten machen soll.

Antwort

8

sollten Sie in der Lage sein, Folgendes zu tun:

  • ändern Sie Ihre Datenbank manuell die Änderungen im Modell zu reflektieren, wird nicht durch eine Migration behandelt werden. Alles sollte jetzt funktionieren, aber die Datenbank und das Migrationssystem sind nicht synchron.

  • Führen Sie Add-Migration ManuallyUpdatedDatabase -IgnoreChanges. Dadurch wird eine vollständig leere Migration erstellt, sodass keine Änderungen an der Datenbank vorgenommen werden. Sie stellt jedoch sicher, dass das System über die manuellen Änderungen informiert ist, die vorgenommen wurden. Auf diese Weise werden die manuellen Änderungen nicht in die nächste von Ihnen erstellte Migration einbezogen.

  • Führen Sie Update-Database aus, um die leere Migration anzuwenden.

Von hier an sollte alles wie gewohnt funktionieren. Sie haben nur einen "fehlenden Link" in Ihren Migrationen, weil Sie einige Änderungen manuell vorgenommen haben.

Verwandte Themen