我正在使用.Net Core构建MVC应用程序,并且需要生成迁移脚本。
使用EF6,我确实运行了命令
update-database -script
但是当我尝试对.net Core进行相同操作时,抛出下一个异常:
Update-Database:找不到与参数名称“ script”匹配的参数
您是否知道EF Core是否具有等效功能?
我正在使用.Net Core构建MVC应用程序,并且需要生成迁移脚本。
使用EF6,我确实运行了命令
update-database -script
但是当我尝试对.net Core进行相同操作时,抛出下一个异常:
Update-Database:找不到与参数名称“ script”匹配的参数
您是否知道EF Core是否具有等效功能?
Answers:
根据EF文档,您可以使用Script-Migration
command。
如果您只想编写所有迁移的脚本,则可以像这样从Package Manager控制台中调用它。如果您只想编写上一次迁移的更改脚本,则可以这样命名:
Script-Migration -From <PreviousMigration> -To <LastMigration>
确保检查文档,该命令还有更多选项。
您可以使用dotnet core cli生成脚本
dotnet ef migrations script
您也可以使用新的power shellout-file
命令将其保存到文件中。
dotnet ef migrations script | out-file ./script.sql
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.
因此,您可以尝试
dotnet ef migrations script ver1 ver2
dotnet ef migrations script ver1 ver2 -o ./script.sql
这适用于.Net Core 2.1
这也只生成SQL
Update-Database -script -TargetMigration TO -SourceMigration FROM