首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >EF向后兼容DB迁移

EF向后兼容DB迁移
EN

Stack Overflow用户
提问于 2014-11-13 17:06:04
回答 1查看 1.7K关注 0票数 6

我试图找出如何使用EF代码优先和迁移来实现下面的部署场景。我的想法是通过向后兼容的模式更改(例如:添加一个列)升级DB,并测试所有内容是否仍然正常工作。它受到绿色/蓝色部署的启发,但并不完全遵循这种模式。这背后的理由是遵循这一进程:

  1. 升级数据库(EF迁移)
  2. 测试网站
  3. 更新网站代码
  4. 如果出了问题,请恢复到以前的网站代码。

我肯定会面临的问题是,在第2步(和第4步),虽然所有的DB更改都与现有的代码兼容,但是在第2步(和第4步),我肯定会从EF那里得到一个关于模型正在更改的错误。

我知道一个解决方案是将"Down“数据库迁移到以前的版本(甚至执行DB备份),但可能会发生一些迁移非常复杂,"Down”部分可能被破坏或代码编写不当的情况。

因此,我的问题是:是否有办法避免EF检查模型,或者最终意识到更改是向后兼容的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-13 20:06:03

将dbinitializer设置为null将删除compability检查,例如

代码语言:javascript
运行
复制
public class MyDBContext: DbContext 
{
    public MyDBContext() : base("myConnString")
    {            
        //Disable initializer
        Database.SetInitializer<MyDBContext>(null);
    }
    public DbSet<A> As { get; set; }
    public DbSet<B> Bs { get; set; }
}

还建议使用here

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26914395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档