Loading

.NET Core 6+EntityFrameworkCore+MySQL生成迁移失败_EF Core数据迁移操作步骤

在开发中,使用EF code first方式开发,那么如果涉及到数据表的变更,该如何做呢?当然如果是新项目,删除数据库,然后重新生成就行了,那么如果是线上的项目,数据库中已经有数据了,那么删除数据库重新生成就不行了,那么该如何解决呢?Ef提供了一种数据迁移的操作。具体该如何操作呢。

报错To undo this action, use Remove-Migration.

在vs2022的Nuget控制台,输入以下命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
执行迁移命令
 
PM> Add-Migration init
 
To undo this action, use Remove-Migration.
 
PM> Update-Database init
 
Applying migration '20220917062429_init'.
 
Done.
 
PM> Add-Migration updatedb
 
To undo this action, use Remove-Migration.
 
PM> Update-Database updatedb
 
Applying migration '20220917063252_updatedb'.
 
Done.
 
PM>
 
最后等待一分钟,再查看数据表的变化<br><br>

  

使用 dotnet-ef 进行数据库迁移

 

安装 dotnet-ef

1
dotnet tool install --global dotnet-ef

添加一个新的migration

1
dotnet ef migrations add initname

更新数据库

1
dotnet ef database update

  

 

 

 

 

常见问题:1、Table ‘XXX’ already exists错误解决方法

普通的数据库迁移执行三条命令

(0)Enable-Migrations(打开数据迁移)

(1)Add-Migration InitialCreate

(2) Update-Database -Verbose(自动迁移只需要执行这个)

如果只是修改了字段,执行这些命令会提示

Table ‘XXXXXXXXXXXXXXXXXXX’ already exists

表示这个迁移会执行建表操作,已存在导致迁移失败。

楼主解决方法如下:

输入 

1
get-help entityframeworkcore

获取指令帮助。

使用 Script-Migration Generates a SQL script from migrations.(脚本迁移从迁移生成SQL脚本。)

执行

1
Script-Migration

执行完毕会弹出迁移所用的sql语句,并且有时间记录

放到sql工具跑一下就好啦

 

2、EF Core 迁移过程遇到EF Core tools version版本不相符的解决方案
 
项目迁移遇到问题
1
The Entity Framework tools version '6.0.9' is older than that of the runtime '6.0.10'. Update the tools for the latest features and bug fixes. See https://aka.ms/AAc1fbw for more information.

 更新EF Core tools version,执行命令

1
dotnet tool update --global dotnet-ef

  

 
 
 
 

 

posted @   梦想PHOTO  阅读(745)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示
主题色彩