如何使用 Entity Framework 5 Code First 迁移来创建从初始(空)状态到最新迁移的完整数据库脚本?
MSDN Blog上的博客文章建议这样做,但它似乎创建了一个空脚本:
Update-Database -Script -SourceMigration: $InitialDatabase
如何使用 Entity Framework 5 Code First 迁移来创建从初始(空)状态到最新迁移的完整数据库脚本?
MSDN Blog上的博客文章建议这样做,但它似乎创建了一个空脚本:
Update-Database -Script -SourceMigration: $InitialDatabase
API 似乎已经改变(或者至少,它对我不起作用)。
在包管理器控制台中运行以下命令按预期工作:
Update-Database -Script -SourceMigration:0
对于任何使用实体框架核心的人都在这里结束。这就是你的做法。
# Powershell / Package manager console
Script-Migration
# Cli
dotnet ef migrations script
您可以使用-From
and-To
参数生成更新脚本以将数据库更新到特定版本。
Script-Migration -From 20190101011200_Initial-Migration -To 20190101021200_Migration-2
https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/#generate-sql-scripts
此命令有几个选项。
from迁移应该是在运行脚本之前应用到数据库的最后一次迁移。如果未应用任何迁移,请指定
0
(这是默认设置)。to迁移是运行脚本后将应用于数据库的最后一个迁移。这默认为项目中的最后一次迁移。
可以选择生成幂等脚本。此脚本仅在尚未应用到数据库时才应用迁移。如果您不确切知道应用于数据库的最后一次迁移是什么,或者如果您要部署到多个数据库,而这些数据库可能各自处于不同的迁移中,这将非常有用。
为了补充马特威尔逊的回答,我有一堆代码优先的实体类,但没有数据库,因为我没有备份。所以我在我的实体框架项目上做了以下事情:
在 Visual Studio 中打开包管理器控制台并键入以下内容:
Enable-Migrations
Add-Migration
为您的迁移命名,例如“初始”,然后创建迁移。最后键入以下内容:
Update-Database
Update-Database -Script -SourceMigration:0
最后的命令将从您的实体类创建您的数据库表(前提是您的实体类格式正确)。