实体框架6模型优先迁移

12
期望结果: 使用Entity Framework的模型优先方法,并允许根据模型中的更改自动进行部署数据库/模型的更改。自动生成模式差异脚本以实现平滑迁移。
在模型优先EF6中是否有执行迁移的方法?我可以看到关于代码优先迁移的主题,但关于模型优先方面很少。
目前我看到的选项有:
  • Database generation power pack(似乎已过时)
  • 某种方式将其转换为代码优先,然后使用迁移(不理想,因为我喜欢拥有可视化设计工具)
  • 某种方式依赖于代码优先迁移(http://blog.amusedia.com/2012/08/entity-framework-migration-with-model.html:这是针对EF5的,运行模型优先迁移时出错)
  • 一些第三方工具?
1个回答

13
据我所知,目前仍然没有针对实体框架模型优先的自动迁移方法。我们的做法是:
  1. 从模型创建一个全新的数据库。
  2. 创建差异脚本以将旧数据库迁移到新数据库。
  3. 验证此差异脚本是否正确。 始终要仔细检查自动化工具创建的内容
我们最初使用 Open DB diff 进行模型优先迁移。之后,我们转向 Redgate's SQL compare,因为它能够产生更可靠的迁移结果。在我们的经验中,DbDiff 生成了很多不必要的 SQL,因为它关注列的顺序,并且存在一些其他问题,例如外键不断被删除和重新添加。除此之外,它仍然可以完成任务,但我们需要对其生成的 SQL 进行大量双重检查。

我们最终采用了这种方法,因为从某种程度上讲,它是有道理的。我们在本地PC上拥有开发数据库,可以随意进行操作,然后将更改传播到测试数据库,最后再传播到生产环境。您所描述的工作流程很好地适合这个顺序,到目前为止看起来是一个非常好的解决方案。在此标记为已回答。 - Levent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接