在生产 CMS 方法中应用迁移

Applying migrations in production CMS approach

我已经阅读了几篇关于在生产中应用迁移的文章。我很了解它,但我想我想知道它的详细信息。我也阅读了微软的文档,但它没有给我想要的东西。 Database.Migrate() 方法几乎被用于我在网上阅读的所有关于它的内容。它是如何工作的?没有人解释。 假设在 CMS 平台中,我想应用新的迁移,在 运行 时间添加了一个新模块,我必须 运行 自动迁移,因为您不希望您的用户参与数据库操作的复杂性就像 wordpress 一样。 如果需要,新模块可能包含迁移脚本,它们将包含一个 class,它继承自我的基础 DbContext,它们可以添加它们的模块模型和与数据库相关的所有内容。 然后我将不得不合并或加载 class 或与核心组装。

  1. Database.Migrate 是如何工作的?
  2. 是否生成迁移脚本?
  3. 是否像在线执行时那样向迁移 table 添加迁移?
  4. 我需要将迁移脚本传递给它吗?
  1. Database.Migrate 仅应用已生成的迁移。这与 CLI 中的命令 dotnet ef database update 相同。
  2. 不,不是。这是您需要自己完成或使用工具/脚本自动化的事情 - documentation
  3. 如前所述,它不会添加任何新迁移,只会应用它们。
  4. 我认为你做不到。一种更简单的方法是在部署时创建一些脚本,该脚本将执行您想要的操作并在出现故障时恢复数据库。我还建议您考虑会影响数据的迁移。如果有人生成迁移导致数据丢失怎么办?