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 修改即可

这时候查看数据库发现字段长度也更改了

posted @ 2022-01-11 14:26  青仙  阅读(75)  评论(0编辑  收藏  举报