Entity Framework 迁移失败后数据库处于什么状态?
In what state is the Database after a failed Entity Framework migration?
我们正在考虑通过迁移切换到 Entity Framework 代码优先,出现以下情况:
我们有 3 个待处理的迁移:
迁移 1 有效
迁移 2 失败
迁移 3 有效
我 运行 迁移后,数据库处于什么状态?它是否回滚所有内容,是否执行迁移 1 并在 2 失败时将其回滚?迁移 2 是否回滚以及 1 和 3 是否定期完成?
感谢任何帮助。
据我所知,迁移器会在遇到无法应用的迁移时中止,但不会回滚任何先前的迁移。在您的示例中,数据库将处于仅应用迁移 1 的状态,您应该收到一条消息,指出迁移 2 包含错误。
要强制手动回滚,请使用带有 -TargetMigration <Full Migration Name>
选项的 Update-Database
命令。您必须在迁移中定义 Down() 方法才能正常工作。
为每个单独的迁移创建一个事务,并在每个迁移结束时提交,即每个迁移都被完全应用或根本不应用。
我们正在考虑通过迁移切换到 Entity Framework 代码优先,出现以下情况:
我们有 3 个待处理的迁移:
迁移 1 有效
迁移 2 失败
迁移 3 有效
我 运行 迁移后,数据库处于什么状态?它是否回滚所有内容,是否执行迁移 1 并在 2 失败时将其回滚?迁移 2 是否回滚以及 1 和 3 是否定期完成?
感谢任何帮助。
据我所知,迁移器会在遇到无法应用的迁移时中止,但不会回滚任何先前的迁移。在您的示例中,数据库将处于仅应用迁移 1 的状态,您应该收到一条消息,指出迁移 2 包含错误。
要强制手动回滚,请使用带有 -TargetMigration <Full Migration Name>
选项的 Update-Database
命令。您必须在迁移中定义 Down() 方法才能正常工作。
为每个单独的迁移创建一个事务,并在每个迁移结束时提交,即每个迁移都被完全应用或根本不应用。