MVC3 和 Code First 迁移 - “自数据库创建以来,支持‘blah’上下文的模型已发生变化”

2023-11-29

我使用 Entity Framework Code First 开始我的项目。当我准备好后,我将数据库和代码上传到我的主机提供商。一切顺利。

我需要向我的一个类添加一个新字段,并且我不想丢失数据库中的数据。因此,我尝试关注一些有关使用 Code First 迁移的博客文章。我做了以下事情:

  1. 我备份了远程(生产)数据库。
  2. 我在本地附加了这个数据库
  3. 我将该属性添加到我的班级中
  4. PM> 启用迁移
  5. PM> 添加迁移 AddSortOrderToCar
  6. PM> 更新数据库
  7. 此时,我创建了本地数据库的 .bak 文件,然后使用该文件“恢复”到远程数据库。
  8. 最后,我将代码发布到远程站点。

当我访问该网站时,我收到以下错误消息: 自数据库创建以来,支持“blahblah”上下文的模型已经发生了变化。考虑使用 Code First 迁移来更新数据库。

我究竟做错了什么?


根据我的经验,这表明迁移表不同步(即使您的数据不同步),并且它现在已成为数据库模式的一部分(我认为从 4.3 开始 - 在系统表下)。

遇到该错误的原因和方法可能有很多,但大多数时候......

有问题的部分是手动备份/恢复完整数据库与代码更改的某种组合 - 我不完全确定为什么总是这样。

简而言之,即使 Db-s 是相同的迁移表数据也可能不同 - 并且哈希比较可能会失败(仍然完全恢复听起来足够好 - 但你有“两侧”)。


对我有用的是使用
Update-Database -Script

这将创建一个具有“迁移差异”的脚本,
您可以将其作为 SQL 脚本手动应用到目标服务器数据库上(并且您应该插入正确的迁移表行等)。

如果这仍然不起作用 - 你仍然可以做两件事......

  1. 删除迁移表(目标 - 在系统表下) - 按照http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspx那里的评论 - 这应该会回到以前的行为,如果你确定你的 Db-s 是相同的 - 它只会“信任你”,

  2. 作为我使用的最后手段 - 制作一个Update-Database -Script完整模式(例如,通过初始化一个空数据库,这应该强制使用“完整脚本”),
    找出INSERT INTO [__MigrationHistory]记录,
    只需运行它们,将它们插入数据库,
    并确保您的数据库和代码匹配,

这应该会使事情再次同步运行。

(免责声明:这并不是始终有效的防弹方案,根据您当地的情况,您可能需要尝试一些事情 - 但应该让您保持同步)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC3 和 Code First 迁移 - “自数据库创建以来,支持‘blah’上下文的模型已发生变化” 的相关文章

随机推荐

  • 如何在 mac os x 10.7.2 Lion 上安装 PIL

    我尝试过谷歌搜索并查找其他人的问题 但是 我仍然找不到在 mac os x 10 7 2 Lion 上安装 PIL 适用于 python 2 6 或 2 7 的清晰 简单的方法 如果你使用homebrew 您只需安装 PILbrew ins
  • gnuplot 条形图上的 Y 值?

    我可以让 gnuplot 在其条形上显示数据点的精确 y 值或高度 使用 带框 绘制 吗 我希望该图易于阅读 这样就无需将条形顶部与 y 轴对齐并猜测该值是多少 您可以使用标签样式并将其与框样式结合到绘图命令中 标签样式需要 3 列数据 x
  • Oracle 中的 DATEDIFF 函数 [重复]

    这个问题在这里已经有答案了 我需要使用 Oracle 但 DATEDIFF 函数在 Oracle DB 中不起作用 在Oracle中如何编写以下代码 我看到一些使用 INTERVAL 或 TRUNC 的示例 SELECT DATEDIFF
  • 如何在张量流中使用预训练模型作为不可训练子网络?

    我想训练一个包含子网络的网络 我需要在训练期间保持修复 基本思想是在预训练网络 inceptionV3 中添加一些层 new layers gt pre trained and fixed sub net inceptionv3 gt ne
  • 根据第二个数组过滤 numpy 数组中的行

    我有 2 个 2d numpy 数组 A 和 B 我想删除 A 中出现在 B 中的所有行 我尝试过这样的事情 A np isin A B 但 isin 保留 A 的维度 我需要每行一个布尔值来过滤它 编辑 像这样的东西 A np array
  • Vue 模板或渲染函数尚未定义,我两者都没有使用?

    这是我的主要 JavaScript 文件 import Vue from vue new Vue el app 我的 HTML 文件 div div 使用运行时构建的 Vue js 的 Webpack 配置 alias vue vue di
  • 通过计时器在 JDialog 中设置动态 JLabel 文本

    我正在尝试制作一个 JDialog 它将在 JLabel 上向用户显示动态消息 该消息应该是从 1 到 10 的计数 并且应该每秒更改一个数字 问题是 当我调试它时 它在 dia setVisible true 之后立即停止 除非我关闭 J
  • 在 R 中提取日期

    我在 R 中处理日期方面遇到了很大的困难 而在 SPSS 中可以很轻松地做到这一点 但我很乐意留在 R 中完成我的项目 我的数据框中有一个日期列 想要完全删除年份以保留月份和日期 这是我的原始数据的峰值 gt head ds date 1
  • 在不改变宽度的情况下减少条之间的间距

    我正在创建一个像这样的条形图 gender M F numbers males females bars plt bar gender numbers width 0 1 bottom None align center data None
  • 合并具有公共元素和多个数据点的数组

    我正在尝试使用直接的 Javascript 将两个 Javascript 数组合并为一个数组 我正在努力准确地完成以下两个问题中所提出的问题 然而 我的数据有几个点需要合并 而不是单个项目 并且数组之间有一个完全相同的公共元素 以下是其他问
  • 匹配 Swift 中对象的数据类型

    Swift 中如何匹配对象的数据类型 Like var xyz Any xyz 1 switch xyz case let x where xyz as AnyObject println x is AnyObject Type case
  • 如何使用循环来抓取 R 中多个网页的网站数据?

    我想应用一个循环来从 R 中的多个网页中抓取数据 我能够抓取一个网页的数据 但是当我尝试对多个页面使用循环时 我收到了一个令人沮丧的错误 我花了几个小时修修补补 但无济于事 任何帮助将不胜感激 这有效 GET COUNTRY DATA li
  • 数据帧 R 中的成对减法

    我有一个包含 576 行和 5 列的数据框 如下所示 Sample Value1 Value2 A 23 2 NA A 21 5 23 5 A 22 4 22 56 B 20 56 26 54 B 21 5 25 3 B 22 3 24 6
  • 替换 snprintf(3) 的 C++ 习惯用法是什么?

    我有一些 C 代码 在解析某个文件头失败时需要生成错误消息 在这种情况下 我需要确保标头中的某个 4 字节字段是 OggS 如果不是 则返回一条错误消息 例如 invalid capture pattern FooB waiting Ogg
  • jQuery: text() 和 html() 之间有什么区别?

    jQuery 中的 text 和 html 函数有什么区别 div html a href example html Link a b hello b vs div text a href example html Link a b hel
  • 转换unicode

    我有一个UITextField输入一个unicode值 当我点击UIButton需要将其转换并显示在UILabel 下面的代码对我来说工作正常 我的代码中的unicode NSString str NSString stringWithUT
  • 范围解析运算符和常量

    我们来看下面的代码 include
  • 类型擦除类型擦除,“有什么”问题吗?

    所以 假设我想使用类型擦除来键入擦除 我可以为变体创建伪方法 以实现自然的 pseudo method print auto self auto os os lt lt self std variant
  • 删除多维数组

    在 C FAQ 中 16 16 给出了以下示例 void manipulateArray unsigned nrows unsigned ncols typedef Fred FredPtr FredPtr matrix new FredP
  • MVC3 和 Code First 迁移 - “自数据库创建以来,支持‘blah’上下文的模型已发生变化”

    我使用 Entity Framework Code First 开始我的项目 当我准备好后 我将数据库和代码上传到我的主机提供商 一切顺利 我需要向我的一个类添加一个新字段 并且我不想丢失数据库中的数据 因此 我尝试关注一些有关使用 Cod