EF6的数据库迁移适用生产环境和开发环境分离,绝对是最简单的

哈喽大家好,好久没写点什么东西了。

最近自己写了个小网站玩儿,底层链接数据库用的是最简单的EF6,为了开发一时爽就用的是framework。

但是在开发中遇到了一个问题

当我把第一版的内容部署到服务器IIS以后,然后在后面开发过程中又增加了新的字段,或者新的表时候,我服务器上面的数据库怎么办,

服务器和本地表结构不同步,我总不能给服务器装一个vs吧,这样,我心态崩了啊。

然后就开始一顿乱搞,本来好好的,作死一更新,发现网站崩了,提示Code first啥版本也不一样,出黄页了。

然后就开始找解决方案。扒拉了半天也没找到,一个写的比一个复杂,牛头不对马嘴。有一些干脆是搬迁别人的博客,。一点技术含量都没有。

 

最终,还是在我官方大微软里面找到了解决方案,。罗里吧嗦半天,我还是直接上代码吧

微软官方原解决方案

首先,如果你没有Enable-Migrations 过的话,先干这个(如果你还真能成功的话,八成我这个文章不适合你)。

 

 如果你有这个错误提示的话,没什么问题。继续往下走

Update-Database -Script -SourceMigration:$InitialDatabase -TargetMigration:(yourMigrationName)

上面那句话,全部复制下去到Package Manage Console里:后面括号里是你的Migration版本,复制过去,不要加括号。我这里加括号是方便理解

然后就会发现控制台出来一大堆东西

 

 在等等就出sql 了

 

 把这里面的所有东西都复制拿到线上的数据库里,执行一下就OK。

问题解决。

顺路提一嘴,EF Core的迁移命令简单的多,

Script-Migration -From yourMigrationName

如果不写 -From 默认所有,也可以写 -From yourMigrationName to yourMigrationName

to这里我不记得是不是加-了。

写这里也方便自己以后找。

 

最后,ef6有问题可以可以评论留言。如果你没有自己乱搞Migration文件的话

 

posted @ 2021-05-13 21:14  王月半子  阅读(248)  评论(0编辑  收藏  举报