JD *_*vis 5 .net c# entity-framework .net-core entity-framework-migrations
去年,我使用 .Net Core 和 EF Core 重写了一个遗留应用程序,但由于其他限制因素,当时选择不添加迁移。终于到了新应用程序可以作为模式更改的“单一事实来源”运行的时候了,但我对前进的最佳方式有点茫然。
我的最终目标是进行迁移,使整个现有数据库从无到有(减去非查找表中包含的数据)。不幸的是,到目前为止我想出的最可行的解决方案是针对新的空白数据库构建迁移。然后,一旦创建了与当前数据库状态匹配的初始迁移,我就可以将__EFMigrationsHistory新创建的数据库复制到旧数据库。
或者,我可以构建一个空白的初始迁移,并且可以尝试在该迁移中添加逻辑,以便从 SQL 文件创建数据库(如果数据库不存在)。
这两种解决方案似乎都特别“好”。除了诸如 之类的工具之外FluentMigrator,是否有任何以 EF Core 为中心的方法可以简化为需要重新创建测试的现有数据库创建迁移的过程?
Mét*_*ule 12
当我想压缩过去 5 年的所有现有迁移时,我遇到了类似的问题(因为创建新实例需要很长时间)。我是这样做的:
DbContextModelSnapshot.csUp和Down方法的主体;目标是欺骗 EF Core 认为它应用了这些迁移__EFMigrationsHistory表将包含它们并在将来忽略它们通过所有这些步骤,您现在可以使用任何未来的迁移来更新现有实例,还可以从头开始重新创建新实例。