代码优先迁移实体框架 6 清空/下空



我遇到的问题是,当我"添加迁移"时,似乎没有与目标数据库进行比较,并且向上/向下方法为空。

这从我针对不同的环境开始。 当我更新数据库时,迁移更改工作正常,它针对一个特定的数据库,我的开发数据库。

当我将连接字符串更改为面向另一个数据库、另一台服务器上的另一个开发框并尝试为该特定环境添加迁移时,Up/Down 方法始终为空。

我尝试以更新数据库为目标,以在第二个开发框中回滚对先前迁移的更改,但它没有改变任何内容。

如果要将代码优先更改从一个环境迁移到另一个环境,我是否需要专门执行任何操作?

无需

添加新迁移,需要强制 EF 运行所有旧迁移。尝试指定源和目标迁移:

Update-Database -SourceMigration: $InitialDatabase -TargetMigration: AddPostAbstract  

另一种选择是生成一个脚本,您可以通过向命令中添加 -Script 来针对其他数据库运行该脚本。

见 https://msdn.microsoft.com/en-us/data/jj591621.aspx#script

如果您有很多迁移,您可以通过删除它们并执行新的添加迁移来增加它们。

几个小时以来,我一直在为这个空的 up() 和 down() 在每次尝试中出现而苦苦挣扎。甚至尝试重新开始一个新项目.没用..

直到我有了在Visual Studio中将数据项目设置为解决方案的默认启动项目的想法......然后奇迹发生了!

不能真正说这是否是一个解决方案(因为我仍然没有看到与基本问题的联系),但它可以帮助某人哪个视觉工作室的宇宙标志与我的:)相同

我最终做的是生成一个初始迁移,然后比较两个服务器之间的模式(@Steve Greene 评论了一个很好的链接,描述了我在这里做了什么比较:http://www.techbubbles.com/sql-server/schema-compare-for-sql-server-in-visual-studio-2013/)。 然后,我煞费苦心地浏览了迁移代码,并注释掉了不必要的内容。

迁移成功运行后,一切将恢复平稳运行。

不确定是否有更好的处理方法,但这对我有用。

最新更新