我首先使用实体框架6.1.3数据迁移和代码迁移。我正在重新安置移民。我删除了迁移历史表,并创建了数据库当前状态的新基线快照。在新安装的新安装程序中,所有内容都可以正常工作,下面的安装程序如下:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<T>, Migrations.Configuration>(true));然而,应该如何将这种重置部署到拥有现有数据库的客户身上呢?当我有一个带有错误的现有数据库时,在本地失败:数据库中已经有一个名为“*”的对象。
当需要重置现有数据库的迁移和同步模式时,是否有人有更好的方法?
发布于 2017-04-03 15:53:19
我开始认为我需要重新设置迁移,因为我的团队中以前的开发人员没有正确地使用脚本。这导致了以下错误:

然而,我不确定这将如何为现有的客户。我没有意识到我能重新搭建我的迁徙支架。经过如此多的搜索、尝试和错误之后,我得以保存我的迁移。我首先迁移到处于良好状态的迁移。

使用给出的完全限定的名称是很重要的。经过反复试验,我发现了一个稳定的迁移。我通过运行以下命令验证了这一点:

如果EF能完全和解,它就会成功。我还不得不从VS项目中排除最近有针对性的迁移之后的所有迁移。简单的移位选择,右键单击并从项目中排除。
然后,在更新数据库之后,我将下一次迁移添加到项目中。我还使用fluent API排除了当前目标迁移之后的所有模型更改。

然后我逐渐地重新搭建了所有破碎的迁移。

最后,我为我的模式创建了一个幂等脚本。使用以下方法:

我的移民现在没有抱怨模式错配,我很高兴。
https://stackoverflow.com/questions/43031014
复制相似问题