首页 新闻 会员 周边 捐助

code first如何进行数据迁移到正式数据库

0
悬赏园豆:10 [已关闭问题] 关闭于 2014-09-15 16:47

网上很多都是讲开发过程中如何使用code first 进行开发迁移的,没有一个人能给出正式站点如何更新的,小弟猜想是否有什么命令工具可以直接在服务器上执行的,望赐教。现在想想code first就是个坑爹的东西

    更新正式正式站点本人现在都是用下面两种方式更新。

   1:直接连接到正式数据库,这种方式非常的坑爹,不一定允许直接访问正式数据库,在对应的web站点服务器安装一个vs,这种方式非常傻逼吧

  2:备份正式站点数据库,拿到本机还原一个,把正式站点关闭,风险大啊,别人访问不了。建议访问量不大的可以考虑这个方案。

沦落的伤心人的主页 沦落的伤心人 | 菜鸟二级 | 园豆:208
提问于:2014-08-28 10:36
< >
分享
所有回答(2)
0

VS的控制台管理器,使用enable-migration命令启用移植,然后使用add-migration命令添加数据移植命令,最后使用update-database执行更新(执行移植命令)。

 

add-migration命令会生成脚手架,一个up一个down共两个方法,两个方法都是在执行update-database时执行,区别是:update-database能执行添加与回滚(使用get-help获取帮助),新增执行up命令,回滚执行down命令。

519740105 | 园豆:5810 (大侠五级) | 2014-08-28 11:26

大侠,不知道看懂问题木有?我说的是更新正式数据库。

支持(0) 反对(0) 沦落的伤心人 | 园豆:208 (菜鸟二级) | 2014-08-28 13:10

@沦落的伤心人: 你是说你相对于正式数据库,通过EF做了些修改吧?通过这个方法一样的能达到目的。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-08-28 13:12

@519740105: 不知道是我描述有问题还是你理解有问题,你见过哪家公司的正式数据库vs字符串链接中能直接访问正式数据库的。都不能连接数据库你怎么更新正式数据库字段?

支持(0) 反对(0) 沦落的伤心人 | 园豆:208 (菜鸟二级) | 2014-08-28 13:16

@沦落的伤心人: 你都不能直接连接数据库,你的代码存在对数据库的操作有什么价值?至少,必须能直接连接数据库,你才有使用EF的价值。

如果你不能直接连接数据库处理,那么:

1、只能通过备份还原来达成目的了。

2、在能直接连接数据库的地方安装个VS来解决

3、EF的数据迁移是一个工具,不是非要寄宿与VS才能使用。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-08-28 13:19
0

假如其他开发人员的计算机上也需要这些更改,则在我们将所做的更改签入源代码管理后,他们只需执行同步操作即可。在他们得到我们的新迁移后,即可运行 Update-Database 命令在本地应用这些更改。不过,如果希望将这些更改推送到测试服务器并最终应用于生产,我们可能希望向 DBA 提交一个 SQL 脚本。

  • 运行 Update-Database 命令,但此时指定 –Script 标记,使更改写入脚本而不应用。我们还将指定为其生成脚本的源和目标迁移。我们希望脚本用于从空数据库 ($InitialDatabase) 最新版本(迁移 AddPostAbstract)的迁移。
    如果不希望指定目标迁移,迁移将使用最新迁移作为目标。如果未指定源迁移,迁移将使用数据库的当前状态。
  • 在程序包管理器控制台中运行 Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration: AddPostAbstract 命令。

Code First 迁移将运行迁移管道,而不是实际应用更改,它会自动将更改写出到一个 .sql 文件。生成脚本后,将会自动在 Visual Studio 中打开它,以供您查看或保存。

将生成的sql脚步去服务器执行就ok了

具体参考:http://msdn.microsoft.com/zh-cn/data/jj591621.aspx

沦落的伤心人 | 园豆:208 (菜鸟二级) | 2014-09-15 16:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册