Ich habe gerade Entity Framework-Migrationen installiert, einer Klasse eine Eigenschaft hinzugefügt und EF Migrations einen Wirbel gegeben.Abrufen des Initial Entity Framework-Migrationsskripts
Meine Entwicklungsdatenbank wurde prompt aktualisiert. So weit, ist es gut.
Jetzt möchte ich ein Änderungsskript für diese initial Verwendung von Migrationen für die Produktionsdatenbank erstellen. Beachten Sie, dass es eine bereits vorhandene Datenbank gab, weil ich diese auf ein vorhandenes Projekt angewendet habe.
Die Migrationen ich habe, sind:
PM> Get-Migrations
Retrieving migrations that have been applied to the target database.
201204102238194_AutomaticMigration
201203310233324_InitialCreate
PM>
ich dachte ich, das ein Delta-Skript bekommen konnte mit folgenden:
Update-Database -SourceMigration:201203310233324_InitialCreate -TargetMigration:201204102238194_AutomaticMigration -script
jedoch, dass gibt mir den Fehler:
'201204102238194_AutomaticMigration' is not a valid migration. Explicit migrations must be used for both source and target when scripting the upgrade between them.
Um zu sehen, was passieren würde, habe ich die zwei Parameter umgekehrt (Rückwärtsmigration) und habe das Skript bekommen, das ich gemacht habe Ich erwarte nach dem Hinzufügen der -Force Flag (neue Spalten fallen gelassen).
Wie kann ich ein Skript für diese erste Migration erhalten?
Wie haben Sie die anfängliche Migration erhalten? Ihre automatische Migration sollte ein Skript zum Erstellen der gesamten Datenbank enthalten, das nicht Ihren Vorstellungen entspricht. Die Ausführung eines solchen Skripts in vorhandenen Datenbanken führt zu vielen Fehlern. Können Sie stattdessen [diesen Ansatz] (http://www.ladislavmrnka.com/2012/03/ef-4-3-migrations-and-existing-database) versuchen? –
@Ladislav: Ich brauche kein Skript für die gesamte Datenbank, da meine gesamte (initiale) Datenbank bereits in Produktion ist. Was ich nicht herausfinden kann, ist, wie ich von der ersten Datenbank, die bereits in Produktion ist, bevor ich Migrationen verwendet habe, zu meinem ersten Update gehe. Ich bin mir sicher, dass Migrations mein ursprüngliches DB-Schema dort irgendwo hat, weil die Umkehr der SourceMigration- und TargetMigration-Parameter zusammen mit * -force * ein Skript erzeugt, um meine neuen Spalten zu DROPEN. Ich kann es einfach nicht von der ursprünglichen Datenbank zur ersten neuen Iteration bringen (füge diese paar Spalten hinzu). –