C# EF核心(3.1)工具:是否有办法将数据库降级到上一次迁移?

C# EF核心(3.1)工具:是否有办法将数据库降级到上一次迁移?,c#,entity-framework,entity-framework-core,C#,Entity Framework,Entity Framework Core,我们正在用C#编写EF Core 3.1应用程序。目前,数据模型处于不断变化之中,因此我编写了两个脚本来自动执行降级数据库/删除迁移/添加迁移/更新数据库周期 对于第一次迁移来说,这很好,但我已经到了希望在两个周期之间保留基础数据的地步:添加一个新迁移,只恢复并重新创建最后一个迁移 对于删除和添加迁移以及升级数据库,没有问题。但我没有任何命令将数据库恢复到上一次迁移:我可以使用dotnet ef database update升级到最新版本,dotnet ef database update 0

我们正在用C#编写EF Core 3.1应用程序。目前,数据模型处于不断变化之中,因此我编写了两个脚本来自动执行
降级数据库
/
删除迁移
/
添加迁移
/
更新数据库
周期

对于第一次迁移来说,这很好,但我已经到了希望在两个周期之间保留基础数据的地步:添加一个新迁移,只恢复并重新创建最后一个迁移

对于删除和添加迁移以及升级数据库,没有问题。但我没有任何命令将数据库恢复到上一次迁移:我可以使用
dotnet ef database update
升级到最新版本,
dotnet ef database update 0
删除所有迁移,但仅此而已

有什么建议吗


编辑:我可能没有把真正的问题说清楚:我不知道脚本中上次迁移的名称,因此我无法在
dotnet ef数据库更新
dotnet ef数据库更新
中引用它,然后
dotnet ef migrations remove
删除上次迁移


e、 g.如果您有migration1->migration2->migration3,那么为了将数据库恢复到以前的迁移,您可以运行
dotnet ef database update migration2
,然后
dotnet ef migrations remove

,为使用visual studio遇到相同问题的任何其他人执行。导航到PackageManager控制台。 视图>其他窗口>软件包管理器控制台

更新数据库迁移名称
这会将数据库还原为指定的迁移

删除迁移

删除最后一次迁移

使用以下命令获取上次迁移的名称如何。据我记忆所及,有一个过滤器开关我不记得了

dotnet ef migrations list
更新:

dotnet ef migrations list | select -last 2 | foreach {*do something here*$_}

现在,,您可以将更新或迁移命令放在那里。

谢谢,但这并不是我真正的问题所在:脚本不知道上一次迁移的名称,我希望避免在其中硬编码迁移名称。谢谢,但这实际上不是我的问题所在:脚本不知道上一次迁移的名称我想避免在代码中硬编码迁移名称,然后你必须在代码中找到它的名称,这是个好主意。谢谢:我想我可以用这个