首先是MVC代码。数据从生产服务器到开发和结构的另一种方式

时间:2013-01-16 08:18:47

标签: sql-server asp.net-mvc code-first

我有一个MVC代码第一个解决方案,我在生产服务器上运行了解决方案。

我现在对模型进行了一些更改,并在我的开发计算机上为我提供了一个新的空数据库。

我现在的问题是:

1)将数据从生产数据库提供给开发计算机的最佳方法是什么? 我试图从生产中生成“仅数据”脚本,但这不起作用。

2)在不丢失数据的情况下,将新结构实施到生产服务器的最佳方法是什么?

我正在使用VS2012专业版。

修改

以下为我工作

1)备份prod服务器并在本地恢复

2)使用VS2012中的模式比较来更新db db db

上的模式

3)将恢复的数据库重命名为原始名称local(现在我有一个带有来自prod和正确模式的数据的本地数据库)

4)备份本地数据库并在服务器上恢复(现在服务器上的数据库具有正确的模式)

唯一的故障是我必须更换

Database.SetInitializer(new myDbInitializer());

Database.SetInitializer< myContext> (NULL);

确保系统不会尝试删除/创建数据库。

1 个答案:

答案 0 :(得分:1)

  

从生产数据库获取数据到开发的最佳方法是什么   电脑?我

除非安全性存在问题,否则备份/恢复。这有时不合法,然后是备份/恢复/加扰或数据生成器(如果不允许开发人员查看数据)。

  

在不丢失的情况下,将新结构实施到生产服务器的最佳方法是什么   数据?

生成脚本以更新数据库。点。

可悲的是,“点”就像“好莱坞签署大字母”一样,因为它是你自己留下的一个区域。您可以进行模式比较,甚至生成delta脚本,但它们是SERIOUSLY原语。插入(元数据),清理操作,重命名将导致问题。

最好的是:

  • 生成增量
  • 手动将其置于适当的形式。
  • 在更新期间,应用delta脚本。

实际上可能是BEST方式,因为架构增量无法正确处理大量事情。

一个例子 - 我们现在使用非规范化表并将其规范化(变为4),然后将其替换为视图。

delta脚本必须生成规范化的值,新表,在那里插入,然后生成视图。

涉及逻辑 - 自动增量无法处理它。