15、CodeFirsrt数据库迁移
数据库迁移
我们如果已经使用了使用CodeFirst创建数据库,但是突然又想增加或者删除一个字段的时候,如果直接去数据库里把数据库删了在重新建立数据库也是可以的,只不过非常麻烦,我们使用数据库迁移就不用这么麻烦,数据库迁移就相当于更新数据库。
数据库迁移命令:
PluralizingTableNameConvention
Enable-Migrations启用数据库迁移
Enable-Migrations –EnableAutomaticMigrations 启动自动迁移
Update-Database 更新到数据库
Add-Migration needname 手动迁移(防止一些数据库丢失的情况,类似做一个日志,方便自己查看)
数据库迁移步骤:
比如:我们现在的用户表里有如下字段:
第一步
我们在它的实体映射里添加一个Hobby字段:
第二步:
我们去找到扩展包
第三步:
打开之后在控制台里输入:
Enable-Migrations –EnableAutomaticMigrations
如下图:还要切换上下文对象
输入后回车
启用数据迁移后,会自动给你建一个文件夹和类:类里就是存你的迁移对象
因为方法里面是true,所以可以使用自动迁移来启用迁移
第四步:
输入Update-Database执行更新
第五步:
可以看到数据库里已经有了
我们如果要改变数据库里已经有的字段的长度的话,还要多一步操作。
比如:我们对已有自动Hobby设置长度:
[StringLength(64)]
public string Hobby { get; set; }
设置完后直接更新数据库迁移
发现无法执行
因为,它怕数据丢失,因为,如果你有个字段长度是128,你改为64,里面的内容就很有而可能丢失,所以你要自己确认一遍,才会给你更新。
第一步:执行手动迁移命令:
Add-Migration needname,
第二步输入命令后回车:
可以看到它会给你生成一个更改时间为名字的日志,就是用来当证据,你自己改的。造成数据丢失不关它的事。
第三步输入更改命令Update-Database 修改即可
这时候查看数据库发现字段长度也更改了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构