当我开始一个项目(Identity Server 4服务器)时,我创建了一个ApplicationDBContext(它继承自ASP.NET IdentityContext并具有一些自定义表),并使用了ConfigurationDBContext以及Identity Server 4中的PersistedGrantDBContext。我创建了3个迁移(每个DBContext一个)。尽管数据在同一个数据库中(所以是一个数据库)。
现在,我重构了代码,为我提供了一个新的DBContext,它在一个DBContext中具有所有3个数据库。
我的问题是新的迁移。
到目前为止,我删除了旧的DBContexts并创建了一个迁移,当我对一个空数据库运行它时,它会再次创建完全相同的数据库。
但是在迁移现有数据库(包含现有数据)时,会引发表X已经存在的异常。
我认为这是因为我删除了旧代码和旧迁移。
因此,如何创建将3个不同的DBContext合并到一个新的DBContext中的迁移。
我假设是否保留旧代码并使用旧迁移,它也会尝试多次创建表(因为它们在旧的拆分迁移和新的组合迁移中)?
如果表存在(是否具有相同的布局,并采用表原样),有没有办法告诉新迁移不抛出错误?
答案 0 :(得分:0)
我认为您必须保留3个默认(旧)上下文。
因为: 将3合1合并并退出其默认上下文是非常不好的做法。