从 EF5代码首次迁移生成完整的 SQL 脚本

如何使用实体框架5代码首次迁移来创建从初始(空)状态到最新迁移的完整数据库脚本?

MSDN 博客的博客文章建议这样做,但它似乎创建了一个空白的脚本:

Update-Database -Script -SourceMigration: $InitialDatabase
142973 次浏览

API 似乎已经改变了(或者至少对我来说不起作用)。

在 Package Manager 控制台中运行以下命令可以正常工作:

Update-Database -Script -SourceMigration:0

为了补充 Matt Wilson 的答案,我有一堆代码优先实体类,但是没有数据库,因为我没有备份。因此,我在实体框架项目中做了以下工作:

在 VisualStudio 中打开 Package Manager 控制台并键入以下内容:

Enable-Migrations


Add-Migration

给你的迁移一个名字,比如“ Initial”,然后创建迁移。最后键入以下内容:

Update-Database


Update-Database -Script -SourceMigration:0

最后一个命令将从实体类创建数据库表(前提是实体类格式良好)。

对于任何使用实体框架 Core结束在这里。这是你如何做到这一点。

# Powershell / Package manager console
Script-Migration


# Cli
dotnet ef migrations script

可以使用 -From-To参数生成更新脚本,以将数据库更新为特定版本。

Script-Migration -From 20190101011200_Initial-Migration -To 20190101021200_Migration-2

Https://learn.microsoft.com/en-us/ef/core/managing-schemas/migrations/#generate-sql-scripts

这个命令有几个选项。

来自迁移应该是运行脚本之前应用到数据库的最后一次迁移。如果没有应用迁移,指定 0(这是默认值)。

迁移是运行脚本后应用到数据库的最后一次迁移。这将默认为项目中的最后一次迁移。

可以选择生成 无能为力脚本。此脚本仅在迁移尚未应用于数据库时应用迁移。如果您不确切地知道上一次应用到数据库的迁移是什么,或者正在部署到可能处于不同迁移的多个数据库,那么这将非常有用。