我已经想了很长时间了,幸运的是我还不需要这个答案,但是我仍然想知道最好的方法。假设我们有以下设置:
让我们遵循这种情况:
好的,现在我所有的问题都来了
我已经为此花了一段时间,因为我看不到任何理想的方法来实现此目的-因为在迁移不匹配时实体框架会中断。
答案 0 :(得分:1)
您可以创建一个SQL脚本来降级数据库。请参阅本文的“获取SQL脚本”部分。
https://docs.microsoft.com/nb-no/ef/ef6/modeling/code-first/migrations/index#specific
在工作流程中,我们“解决”的方法是,当前版本的数据库应支持应用程序的较早版本。
仅在字段或表未用于多个版本之后,才真正删除它。这种方法有一些缺点,数据库可能变得肿且混乱。但这确实提供了能够安装较旧版本的应用程序的灵活性。
答案 1 :(得分:0)
我们在公司有类似的设置,而不是使用代码Fluent Migrator来进行代码优先的迁移。作为应用程序启动代码的一部分,它将运行所有未完成的迁移。
就像您将找到的任何解决方案一样,您将需要编写Up和Down代码,以便它知道如何进行升级和降级。
答案 2 :(得分:0)
经过与其他开发人员的讨论,我得出的结论是我们确实有两种选择: