我被告知启用EntityFramework的自动迁移主要是在生产环境中是一个坏主意。为什么要禁用EntityFramework中的自动迁移
- 我们真的必须禁用它们吗?
- 我们是否必须禁用它们以适应所有环境(开发,发布,制作)?
- 您能否介绍替代部署过程以取代自动迁移 ?
感谢 丹尼尔
我被告知启用EntityFramework的自动迁移主要是在生产环境中是一个坏主意。为什么要禁用EntityFramework中的自动迁移
感谢 丹尼尔
从Oracle SQL的角度谈到,有一些并不一定工作开箱即用一定的变化,所以在创建迁移代码时,需要进行一些手动调整。
请考虑以下事项:
将所需列添加到现有表中。为了保留现有数据,我修改生成的迁移,创建一个可为空的列,分配一个初始值,然后将该列编辑为不可空。
自动化迁移可能会有一些(意外的)副作用,并且我怀疑Oracle数据提供者的情况会更糟,但是MS SQL会出现一些问题。
在团队开发中,如果多位开发人员更改数据库模型,则冲突迁移可能会成为问题。
这不是一个坏主意,但更好的做法是用Entity Framework做manual migration。
为什么:
Another good doc约实体框架迁移
主要使用自动迁移的是代码首先,这是允许的developper产生更多的“代码”比建立数据库。只需创建模型并运行它即可构建Db,从模型或修改列中摧毁您抑制的内容。
感谢您的回答,真的很有帮助。我有一个问题,但。我正在观看有关EF代码第一次迁移的Julie Lerman复数课程,她建议将迁移导出到生产环境的脚本中,但她没有解释原因。你怎么看待这件事? –
不知道这门课程,但我认为她喜欢用sql脚本更新数据库,并且没有实体框架迁移系统。 – EchoZulu
“我被告知” - 你为什么不要求那个人进行辩论? – Evk
我问他,但我不服气。所以这就是为什么我问这个问题。你能为我的问题提供一个答案吗? –
它是一个非常开放的问题,这里可能是各种因素,它可能不适合。其中一个因素是部署你是否有持续部署的应用程序? –