gpt4 book ai didi

c# - EF 向后兼容的数据库迁移

转载 作者:太空狗 更新时间:2023-10-29 21:44:25 27 4
gpt4 key购买 nike

我正在尝试弄清楚如何使用 EF 代码优先和迁移来实现以下部署方案。我的想法是,我想通过向后兼容的模式更改(例如:添加一列)来升级数据库,并测试一切是否仍然有效。它受到绿色/蓝色部署的启发,但并不完全遵循该模式。这背后的原因是遵循这个过程:

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

我肯定会面临的问题是,在第 2 步(和第 4 步)我肯定会从 EF 收到关于正在更改模型的错误,尽管所有数据库更改都与现有代码兼容...

我知道一个解决方案是将数据库“向下”迁移到以前的版本(或者甚至进行数据库备份),但可能会发生某些迁移非常复杂并且“向下”部分可能被破坏或只是编码不好。

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

最佳答案

将 dbinitializer 设置为 null 将放弃兼容性检查,例如

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

关于c# - EF 向后兼容的数据库迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26914395/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com