我有一个MVC代码第一个解决方案,我在生产服务器上运行了解决方案。
我现在对模型进行了一些更改,并在我的开发计算机上为我提供了一个新的空数据库。
我现在的问题是:
1)将数据从生产数据库提供给开发计算机的最佳方法是什么? 我试图从生产中生成“仅数据”脚本,但这不起作用。
2)在不丢失数据的情况下,将新结构实施到生产服务器的最佳方法是什么?
我正在使用VS2012专业版。
修改
以下为我工作
1)备份prod服务器并在本地恢复
2)使用VS2012中的模式比较来更新db db db
上的模式3)将恢复的数据库重命名为原始名称local(现在我有一个带有来自prod和正确模式的数据的本地数据库)
4)备份本地数据库并在服务器上恢复(现在服务器上的数据库具有正确的模式)
唯一的故障是我必须更换
Database.SetInitializer(new myDbInitializer());
与
Database.SetInitializer< myContext> (NULL);
确保系统不会尝试删除/创建数据库。
答案 0 :(得分:1)
从生产数据库获取数据到开发的最佳方法是什么 电脑?我
除非安全性存在问题,否则备份/恢复。这有时不合法,然后是备份/恢复/加扰或数据生成器(如果不允许开发人员查看数据)。
在不丢失的情况下,将新结构实施到生产服务器的最佳方法是什么 数据?
生成脚本以更新数据库。点。
可悲的是,“点”就像“好莱坞签署大字母”一样,因为它是你自己留下的一个区域。您可以进行模式比较,甚至生成delta脚本,但它们是SERIOUSLY原语。插入(元数据),清理操作,重命名将导致问题。
最好的是:
实际上可能是BEST方式,因为架构增量无法正确处理大量事情。
一个例子 - 我们现在使用非规范化表并将其规范化(变为4),然后将其替换为视图。
delta脚本必须生成规范化的值,新表,在那里插入,然后生成视图。
涉及逻辑 - 自动增量无法处理它。