ef code 更改索引数据迁移部分失败回滚问题
修改多个表的索引进行数据迁移的时候由于部分索引更新失败,导致数据表有些索引更新了。
如果继续修改索引添加迁移记录,执行迁移时会报错说“索引不存在无法删除”,是因为之前执行迁移的时候有些索引已经被删除更新了。
执行迁移回滚还原时,发现没能还原到上次执行迁移没有完全成功的修改的索引。。。
此时只能通过查看迁移日志手动执行脚本还原了,未能找到其他办法。。。
测试发现如果迁移执行完全成功不报错是可以正常回滚的,消除了我觉得无法回滚索引更新的疑惑。
问题应该是迁移执行没有完全成功存在部分失败时,回滚还原可能存在还原失败,也有可能是因为我回滚迁移的时候没有一步步向上回滚而是跨迁移记录回滚的原因(猜测,就不验证了!)
总结:
执行数据迁移时应该减少迁移记录修改量,尽量拆分为多次迁移,做好数据备份,保存好迁移日志。
efcore数据迁移参考:https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/migrations/managing?tabs=dotnet-core-cli
本文来自博客园,作者:weichangk,转载请注明原文链接:https://www.cnblogs.com/weichangk/p/15938848.html