使用实体框架 4.3 迁移,而不依赖于实际数据库


EF

迁移看起来很酷,但有太多的"魔术"正在发生,很少有人解释它的实际作用。 我只想设置迁移点并获取 DDL 脚本 - 从一个迁移到另一个迁移的"差异"脚本或整个创建 DDL 脚本。

问题是所有的迁移命令似乎都依赖于一个实际的数据库来执行一堆我不感兴趣的东西。有没有办法绕过所有这些,只使用迁移来生成脚本?

这是昨天讨论过的。迁移命令依赖于工作数据库,因为它们与表交互__MigrationHistory以获取实际状态并正确计算必须执行的更改。

如果您只需要创建脚本,则可以通过使用带有附加参数的 Update-Database 来执行此操作:

为整个数据库创建脚本:

Update-Database -Script -SourceMigration:$InitialDatabase 

创建用于从迁移 A 升级到迁移 B 的脚本:

Update-Database -Script -SourceMigration:"A" -TargetMigration:"B"

最新更新