EF迁移看起来很酷但是有太多的“魔法”正在进行,很少解释它实际上在做什么。我想要做的就是设置迁移点并获取DDL脚本 - 从一次迁移到另一次迁移的“diff”脚本或整个create DDL脚本。
问题在于,所有迁移命令似乎都依赖于存在的实际数据库来执行一堆我不感兴趣的东西。有没有办法绕过所有这些并只是使用迁移来生成脚本?
答案 0 :(得分:0)
这是discussed yesterday。迁移命令取决于您的工作数据库,因为它们与__MigrationHistory
表交互以获取实际状态并正确计算必须执行的更改。
如果您只需要创建脚本,则可以使用带有其他参数的Update-Database来执行此操作:
为整个数据库创建脚本:
Update-Database -Script -SourceMigration:$InitialDatabase
创建用于从迁移A升级到迁移B的脚本:
Update-Database -Script -SourceMigration:"A" -TargetMigration:"B"