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 修改即可
这时候查看数据库发现字段长度也更改了