Ich erstelle eine MVC-Anwendung mit .Net Core und muss das Skript einer Migration generieren.
Mit EF6 habe ich den Befehl ausgeführt
update-database -script
Aber wenn ich versuche, dasselbe mit .net Core zu tun, wird die nächste Ausnahme ausgelöst:
Update-Datenbank: Es wurde kein Parameter gefunden, der dem Parameternamen 'script' entspricht.
Wissen Sie, ob es ein Äquivalent für EF Core gibt?
quelle
Sie können dotnet core cli verwenden, um ein Skript zu generieren
Sie können dies auch mit dem neuen Power Shell-
out-file
Befehl in eine Datei einfügen .dotnet ef migrations script | out-file ./script.sql
quelle
dotnet ef migrations script --help Usage: dotnet ef migrations script [arguments] [options] Arguments: <FROM> The starting migration. Defaults to '0' (the initial database). <TO> The ending migration. Defaults to the last migration. Options: -o|--output <FILE> The file to write the result to. -i|--idempotent Generate a script that can be used on a database at any migration. -c|--context <DBCONTEXT> The DbContext to use. -p|--project <PROJECT> The project to use. -s|--startup-project <PROJECT> The startup project to use. --framework <FRAMEWORK> The target framework. --configuration <CONFIGURATION> The configuration to use. --runtime <RUNTIME_IDENTIFIER> The runtime to use. --msbuildprojectextensionspath <PATH> The MSBuild project extensions path. Defaults to "obj". --no-build Don't build the project. Only use this when the build is up-to-date. -h|--help Show help information -v|--verbose Show verbose output. --no-color Don't colorize output. --prefix-output Prefix output with level.
Sie können es also versuchen
Dies funktioniert in .Net Core 2.1
quelle
Sie können auch ein Skript zum Zurücksetzen einer Migration generieren, indem Sie die Parameter auf Skriptmigration umkehren. Wenn Sie beispielsweise zwei Migrationen haben, BadLatestMigration und GoodPreviousMigration, können Sie mit dem folgenden Befehl zu GoodPreviousMigration zurückkehren
Stellen Sie anschließend sicher, dass Sie die Migration entfernen, um die fehlerhafte Migration zu entfernen
Dies funktioniert in .Net Core 2.2.0
quelle
Dies generiert auch nur die SQL
Update-Database -script -TargetMigration TO -SourceMigration FROM
quelle