在生产 CMS 方法中应用迁移
Applying migrations in production CMS approach
我已经阅读了几篇关于在生产中应用迁移的文章。我很了解它,但我想我想知道它的详细信息。我也阅读了微软的文档,但它没有给我想要的东西。
Database.Migrate()
方法几乎被用于我在网上阅读的所有关于它的内容。它是如何工作的?没有人解释。
假设在 CMS 平台中,我想应用新的迁移,在 运行 时间添加了一个新模块,我必须 运行 自动迁移,因为您不希望您的用户参与数据库操作的复杂性就像 wordpress 一样。
如果需要,新模块可能包含迁移脚本,它们将包含一个 class,它继承自我的基础 DbContext
,它们可以添加它们的模块模型和与数据库相关的所有内容。
然后我将不得不合并或加载 class 或与核心组装。
Database.Migrate
是如何工作的?
- 是否生成迁移脚本?
- 是否像在线执行时那样向迁移 table 添加迁移?
- 我需要将迁移脚本传递给它吗?
- Database.Migrate 仅应用已生成的迁移。这与 CLI 中的命令
dotnet ef database update
相同。
- 不,不是。这是您需要自己完成或使用工具/脚本自动化的事情 - documentation
- 如前所述,它不会添加任何新迁移,只会应用它们。
- 我认为你做不到。一种更简单的方法是在部署时创建一些脚本,该脚本将执行您想要的操作并在出现故障时恢复数据库。我还建议您考虑会影响数据的迁移。如果有人生成迁移导致数据丢失怎么办?
我已经阅读了几篇关于在生产中应用迁移的文章。我很了解它,但我想我想知道它的详细信息。我也阅读了微软的文档,但它没有给我想要的东西。
Database.Migrate()
方法几乎被用于我在网上阅读的所有关于它的内容。它是如何工作的?没有人解释。
假设在 CMS 平台中,我想应用新的迁移,在 运行 时间添加了一个新模块,我必须 运行 自动迁移,因为您不希望您的用户参与数据库操作的复杂性就像 wordpress 一样。
如果需要,新模块可能包含迁移脚本,它们将包含一个 class,它继承自我的基础 DbContext
,它们可以添加它们的模块模型和与数据库相关的所有内容。
然后我将不得不合并或加载 class 或与核心组装。
Database.Migrate
是如何工作的?- 是否生成迁移脚本?
- 是否像在线执行时那样向迁移 table 添加迁移?
- 我需要将迁移脚本传递给它吗?
- Database.Migrate 仅应用已生成的迁移。这与 CLI 中的命令
dotnet ef database update
相同。 - 不,不是。这是您需要自己完成或使用工具/脚本自动化的事情 - documentation
- 如前所述,它不会添加任何新迁移,只会应用它们。
- 我认为你做不到。一种更简单的方法是在部署时创建一些脚本,该脚本将执行您想要的操作并在出现故障时恢复数据库。我还建议您考虑会影响数据的迁移。如果有人生成迁移导致数据丢失怎么办?