EF Core :迁移已经应用到数据库,进行迁移回滚(附:其他一些命令)

85 篇文章 0 订阅
35 篇文章 0 订阅

前置笔记:

EF Core 迁移数据库,以及对数据库升级的思考_董厂长的博客-CSDN博客_efcore 数据迁移这两天一直在学习ABP VNext框架,整到数据库那一块了。发现问了问组里大佬,要使用EFCore迁移数据库。我寻思这和我自己以前搞得不太一样,以前是要写SQL或者直接GUI建表,现在怎么命令行敲一下就自动生成了,写个博客记录一下。EF Core 是一个ORM(对象关系映射),它使 .NET 开发人员可以使用 .NET对象操作数据库,避免了像ADO.NET访问数据库的代码,开发者只需要编写对象即可。1.获取EF Core  通过NuGet获取要使用的数据库支持。比如:Microsoft SQLhttps://blog.csdn.net/dongnihao/article/details/123334374?spm=1001.2014.3001.5502

场景描述:项目中存在两个迁移 fuck1 和 fuck2 ,fuck2在 fuck1之后创建,并且已经执行 database update 将新迁移应用到数据库。此时,因为实体修改,我们希望删除 迁移然后创建新的 迁移

分析:直接移除 TeachingPlan 行不行?我们先试试。

示例:移除最后一个迁移

移除失败:迁移已经应用到数据库。如果该迁移已经应用于其他数据库,请考虑用一个新的迁移来恢复其变化。

根据错误提示,建议我们再创建一个新的迁移,比如:fuck2_01 ,这样能够达到效果,但是不够简洁,存在多个作用相同的迁移。

重新梳理思路:在移除迁移之前,先将数据库恢复到数据迁移之前的状态。使用 dotnet ef database update [miagration_anme] 可以将数据库架构恢复到指定迁移时的状态。

示例:将数据库恢复到 fuck1

update-database -Migration:fuck1

然后移除 fuck2 迁移

remove-migration

移除成功!此时迁移和数据库结构都恢复到 fuck1状态,再重新创建迁移:

add-migrations fuck2

迁移回退任务完成!

•迁移具有前后连贯性,迁移和数据架构应保持一致性。应避免删除已应用到生产数据库的任何迁移。•dotnet ef migrations remove 不带参数,每执行一次,则移除最新创建的迁移。•dotnet ef database update 可以将数据库更新到任何一个指定迁移时的架构。

2022/7/13 

看到关于migrations的其他命令,一并写在此blog下

关于为什么要生成迁移脚本 

当然是扔给运维大哥的啦(狗头),现场出问题只能跑sql

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董厂长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值