我试图找出如何使用EF代码优先和迁移来实现下面的部署场景。我的想法是通过向后兼容的模式更改(例如:添加一个列)升级DB,并测试所有内容是否仍然正常工作。它受到绿色/蓝色部署的启发,但并不完全遵循这种模式。这背后的理由是遵循这一进程:
我肯定会面临的问题是,在第2步(和第4步),虽然所有的DB更改都与现有的代码兼容,但是在第2步(和第4步),我肯定会从EF那里得到一个关于模型正在更改的错误。
我知道一个解决方案是将"Down“数据库迁移到以前的版本(甚至执行DB备份),但可能会发生一些迁移非常复杂,"Down”部分可能被破坏或代码编写不当的情况。
因此,我的问题是:是否有办法避免EF检查模型,或者最终意识到更改是向后兼容的?
发布于 2014-11-13 20:06:03
将dbinitializer设置为null将删除compability检查,例如
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
https://stackoverflow.com/questions/26914395
复制相似问题