迁移如何应用于数据库? [关闭]

Posted

技术标签:

【中文标题】迁移如何应用于数据库? [关闭]【英文标题】:How Migrations are applied to the database? [closed] 【发布时间】:2021-02-25 07:03:51 【问题描述】:

我想了解迁移在实体框架中是如何工作的,ef 如何知道应该将哪个迁移应用于数据库? 我看到在每个数据库中都有一个包含迁移列表的 __MigrationHistory 表。

在将特定迁移应用到数据库之前,ef 是否会比较该表中的迁移和项目中的迁移?

【问题讨论】:

从这里开始:docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/… 【参考方案1】:

应用迁移的历史记录在__EFMigrationsHistory 表中。当 EF 将代码中的迁移列表与数据库中应用的迁移列表进行比较时。因此,它会尝试按照创建时间的顺序将新的迁移应用到数据库。

此外,EF Core 会忽略数据库中列出并从代码中删除的项目。

通过将迁移保留在您的代码中,您可以按照它们应用于数据库并在__EFMigrationsHistory 表中列出的顺序逐步撤消方案。

【讨论】:

此外,EF Core 会忽略数据库中列出并从代码中删除的项目。你能解释一下吗? 我的意思是,如果您删除了已应用的迁移,您不会遇到任何问题,因为 EF Core 仅尝试应用代码中存在但未应用到数据库的迁移

以上是关于迁移如何应用于数据库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何编辑数据库迁移?

如何在生产中使用 Rocket 运行 Diesel 迁移?

如何将 SQL Server 存储过程迁移到 Mysql [关闭]

独立于数据库的数据迁移

检测到的已解决迁移未应用于 flyway 上的数据库

如何在 OpsWorks 部署到 Rails 堆栈期间始终运行迁移