哈喽大家好,好久没写点什么东西了。
最近自己写了个小网站玩儿,底层链接数据库用的是最简单的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文件的话