【问题标题】:How do I undo the last Add-Migration command?如何撤消上一个添加迁移命令?
【发布时间】:2014-02-14 05:35:33
【问题描述】:

我已经使用Add-Migration 命令创建了一个迁移,但我想更改该迁移的名称。如何撤消迁移命令,以便使用新的所需名称重新生成它?

是否只是删除生成的文件的问题,或者这可能是个坏主意?

【问题讨论】:

    标签: entity-framework entity-framework-5 entity-framework-migrations


    【解决方案1】:

    只需使用命令:

    Update-Database nameMigration -context nameContext
    

    然后

    Remove-migration -Context nameContext
    

    【讨论】:

      【解决方案2】:

      如果您尚未使用Update-Database 执行迁移,您可以使用相同的名称再次运行Add-Migration(您可能需要使用-Force)重新执行脚手架。这在Add-Migration 命令的输出中注明。

      【讨论】:

      • 这不是一个好的解决方案,因为这不会恢复 ApplicationDbContextModelSnapshot
      • @Trojaner 你是对的,所以回复stackoverflow.com/a/46921867/690958 是更好的解决方案
      • 也可以清理文件吗?对我来说,它离开了迁移文件,但使用了空的 Up() 和 Down() 方法。
      【解决方案3】:

      EntityFrameworkCore 2.0 附带模型快照。您需要运行删除迁移命令才能更新模型快照。我已经读过,如果您手动删除迁移,EF Core 将识别任何更新并为您还原快照,但这对我不起作用。

      https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations

      https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet#dotnet-ef-migrations-remove

      【讨论】:

        【解决方案4】:

        如果您没有使用过Update-Database,您可以删除迁移文件。如果您已经运行了更新,您应该使用 Update-Database -TargetMigration "NameOfPreviousMigration" 回滚它,然后删除迁移文件。

        参考:

        http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/

        【讨论】:

        • 如果是第一次添加迁移呢?
        • @Jimmyt1988,使用 Update-Database –TargetMigration: $InitialDatabase
        • 然后删除呢?我不明白。然后删除什么?
        • @tnk479 迁移文件。编辑使其更清晰
        • 很遗憾看到旧版本的 EF(如 EF 6)没有 drop-databaseremove-migration 命令
        【解决方案5】:

        通过此命令更新您上一次完美迁移:

        Update-Database –TargetMigration
        

        【讨论】:

          【解决方案6】:

          只需使用命令

          Remove-migration
          

          它将删除最后添加的迁移并更新快照。它不会影响数据库,因此您必须首先回滚数据库。

          【讨论】:

          • 仅在 EF Core 中。
          • 我希望它和drop-database 命令一起出现在 EF 6 中。我太习惯了
          【解决方案7】:

          要添加到 @Ben 的答案,当使用 dotnet ef 命令种类时,这是您需要的删除命令:

          dotnet ef migrations remove

          这将删除您的上次迁移并更新模型快照。

          【讨论】:

            猜你喜欢
            • 2018-06-22
            • 1970-01-01
            • 2014-01-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多