我正在使用一个名为C#的IdentityServer4库。它有自己的一组实体框架DbContext对象。每次发布新版本的IdentityServer4时,您都应该创建一个新的实体框架迁移,并将其应用到数据库中。
我创造了迁移。迁移包含许多新列,包括需要有效引用的外键。
当将这种迁移应用到我现有的数据库中时,由于这些新列没有数据,因而破坏了外键关系要求,迁移失败了。
实体框架是否有针对这类迁移应用程序的推荐策略?我不能在应用迁移时删除所有的数据。
如何使用实体框架迁移来应用这些新列?
发布于 2022-08-12 21:49:30
通常,您提供一个合理的默认值。如果这是不可能的,您可能必须编辑这些模型对象才能不那么严格,然后创建另一个迁移,使您有一个合理的缺省值(或创建这些对象),然后再进行另一个迁移,以使模型与IdentityServer4的最新版本兼容。
编辑:
添加有效值。
,将其提升到当前的IdentityServer模型规范。
这是一个繁琐的过程,需要进行一些尝试和错误,所以保持数据库的备份,如果您有多个正在使用此应用程序的数据库(比如几个客户或测试数据库),也要对这些数据库进行一些备份,并在这些数据库上尝试此方法,直到在部署/发布代码之前它能够正常工作为止。
https://stackoverflow.com/questions/73339956
复制相似问题