Entity Framework Code First原生产环境从未做过数据迁移,给生产环境第一次做数据迁移?

linkFly
  • 1.4k

线上生产环境以前部署的时候从未做过数据迁移,现在已经产生了用户数据。
在后续的本地开发中修改新增和修改了字段、表之类的,现在要做数据库升级(把这些修改推送上去),同时希望线上用户数据仍然保留。

本来想使用EF数据迁移,可是在网上找了一圈文章都是EF在一开始生成数据库的时候就要做好数据迁移的初始化(init),后续在这个基础上继续进行数据迁移。

简单来说问题现象就是:现在线上有数据库,从未做过数据迁移,然后我在做数据迁移的时候,发现生成的脚本全都是Create Table的,包括线上数据库已经存在的表。

现在怎么让它能自动识别出我这次开发中修改的字段和表,自动生成正确的数据迁移代码。

回复
阅读 3.3k
2 个回答

你线上的数据库哪来的?难道不是add-migration Init后再update-database吗?
后续的开发应该也是add-migration dosomething后再update-database
如果你是这种流程,那么可以通过Update-Database -Script -SourceMigration "[某次迁移]"生成[某次迁移]之后的更新的sql语句。

Suner
  • 4
新手上路,请多包涵

如果是第一次执行添加的操作用 Add-Migration InitialCreate -IgnoreChanges 命令
此命令不产生Create Table的代码,然后update-database

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏