C# EF核心(3.1)工具:是否有办法将数据库降级到上一次迁移?
我们正在用C#编写EF Core 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
降级数据库
/删除迁移
/添加迁移
/更新数据库
周期
对于第一次迁移来说,这很好,但我已经到了希望在两个周期之间保留基础数据的地步:添加一个新迁移,只恢复并重新创建最后一个迁移
对于删除和添加迁移以及升级数据库,没有问题。但我没有任何命令将数据库恢复到上一次迁移:我可以使用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*$_}
现在,,您可以将更新或迁移命令放在那里。谢谢,但这并不是我真正的问题所在:脚本不知道上一次迁移的名称,我希望避免在其中硬编码迁移名称。谢谢,但这实际上不是我的问题所在:脚本不知道上一次迁移的名称我想避免在代码中硬编码迁移名称,然后你必须在代码中找到它的名称,这是个好主意。谢谢:我想我可以用这个