我有以下情况 -
我在一个分支机构工作,我已经添加了3个新的迁移 - 对于惯例,我将它们命名为
Migration A
Migration B
Migration C
当尝试与master
合并时,发现有4个新的迁移,这些迁移不是按时间顺序排序的(从另一个分支合并)。我的意思是以下
new Migration from master 1
existing Migration in both branches
existing Migration in both branches
new Migration from master 2
new Migration from master 3
new Migration from master 4
existing Migration in both branches
existing Migration in both branches
合并时我得到以下情况
new Migration from master 1
existing Migration in both branches
existing Migration in both branches
new Migration from master 2
new Migration from master 3
new Migration from master 4
existing Migration in both branches
existing Migration in both branches
Migration A
Migration B
Migration C
现在很明显,实体框架不允许我更新数据库,因为它认为模型是错误的 - 在添加新迁移时,它会从master
的上述4次新迁移中生成更改。
真正的问题是我无法恢复到现有的迁移,然后重新支持更新元数据,因为它们不是按时间顺序排序的 (根据另一个answer中的已接受question建议)。
我已尝试update-database -target
返回new Migration from master 1
之前的迁移,然后Add-Migration <timestamp> new Migration from master 1
重新支持它,但我得到Unable to generate an explicit migration because the following explicit migrations are pending....
例外。
我真的不想添加空白迁移来修复此问题,而是找到一个干净而且很好的解决方案。
答案 0 :(得分:1)
经过一些研究后,解决方案是在最后一次迁移之前将数据库更新为迁移,然后重新构建上次迁移。
update-database -target Migration B
add-migration <timestamp>_Migration C