Buduję aplikację MVC z .Net Core i muszę wygenerować skrypt migracji.
Z EF6 uruchomiłem polecenie
update-database -script
ale kiedy próbuję zrobić to samo z .net Core wyrzuca następny wyjątek:
Update-Database: nie można znaleźć parametru zgodnego z nazwą parametru „script”
Czy wiesz, czy istnieje odpowiednik dla EF Core?
.net
entity-framework
asp.net-core
asp.net-core-mvc
entity-framework-core
Gabriel Castillo Prada
źródło
źródło
Możesz użyć dotnet core cli do wygenerowania skryptu
Możesz również umieścić to w pliku za pomocą nowego
out-file
polecenia powłoki zasilania .dotnet ef migrations script | out-file ./script.sql
źródło
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.
więc możesz spróbować
dotnet ef migrations script ver1 ver2 dotnet ef migrations script ver1 ver2 -o ./script.sql
Działa to w .Net Core 2.1
źródło
Możesz również wygenerować skrypt, aby wycofać migrację, cofając parametry do migracji skryptu. Na przykład, jeśli masz dwie migracje, BadLatestMigration i GoodPreviousMigration, możesz powrócić do GoodPreviousMigration za pomocą następującego polecenia
Następnie pamiętaj o usunięciu migracji, aby usunąć złą migrację
Działa to w .Net Core 2.2.0
źródło
To również generuje tylko SQL
Update-Database -script -TargetMigration TO -SourceMigration FROM
źródło