Entity Framework 数据库迁移脚本

Entity Framework DB Migration Script

好的,这就是我的情况。我已经从数据库生成了 POCO 并围绕它们进行了开发。我还重命名并更改了其中一些 POCO 以使其更具可读性。我现在已经对我的原始数据库方案进行了更改,并且需要将更改迁移回我的模型而不覆盖我的更改,除非方案已更改。有没有办法生成一个 *.sql 脚本交给 DBA?如果是这样,是否有办法比较两个数据库并生成更改脚本?即 - 开发数据库 => 生产数据库。

您可以先将项目切换为代码,然后通过迁移生成您需要的脚本。请参阅下面的 link 以获取有关从 db first 转移到 code first 的指南,但听起来您可能已经部分做到了。

1) enable-migrations 项目如果你还没有的话。

2) 创建基线迁移。 EF 将以此为起点,因此您不会获得一堆代码来创建已经存在的对象。忽略更改标志告诉 EF 不要创建现有对象。 https://msdn.microsoft.com/en-us/data/dn579398.aspx?f=255&MSPPError=-2147217396#option1

create-migration InitialCodeFirst -IgnoreChanges

3) 现在像往常一样修改架构并创建迁移:

add-migration SomeNewThing

4) 使用 -Script 为不同的数据库(如 PROD)创建脚本。这不会更新你的数据库它只是创建一个脚本,所以我通常 运行 第二次没有 -Script:

update-database -Script    // creates a script (in VS), but does not apply
update-database            // updates the database your connect string points to

5) DBA 运行s 脚本,这将向 __MigrationHistory 添加一条记录以将其标识为已应用。

http://devgush.com/2014/02/24/migrating-a-project-from-database-first-to-code-first/

这是一个有用的 link 部署:http://cpratt.co/migrating-production-database-with-entity-framework-code-first/#at_pco=smlwn-1.0&at_si=54ad5c7b61c48943&at_ab=per-12&at_pos=0&at_tot=1