2010-03-30 73 views
0

我只有我的开发机器上具有SQL Server 2008(开发版)是什么/备份/从SQL Server 2008还原到SQL Server中的建议的方法来同步处理2005

我只有SQL Server 2005中提供与我托管公司(和我没有直接连接访问该数据库)

我只是想知道最好的方法是什么:

  1. 获取initlal DB结构&数据投入生产。
  2. 并将来保持任何结构更改/数据更改同步。

据我可以看到... ...

  • 复制 - 不是一种选择,因为我无法连接到生产数据库。

  • 恢复备份 - 不是一种选择,因为据我所知,无法导出2005年可恢复的2008年的数据库(即使2008年的数据库设置为2005年兼容模式),也不会使无论如何感觉要恢复我的开发版本顶部的生产。

  • 从我2008年数据库转储所有的脚本,从2008年还原我的开发机器 - > 2005年,并重新创建脚本的数据库,那么就使用备份&恢复获取初始DB投产,当年运行脚本通过网络面板从这一点起

  • 转储我的2008数据库中的所有脚本,并从生产中的脚本生成整个2005分贝。然后通过从该点起

  • 随着最后2个选项网页面板运行的脚本,我可能需要脚本中的所有数据刀片以及使用一些工具(我相信在网路上)

有没有其他可能的解决方案,我不考虑。

+0

感谢您的建议家伙。 与我的2008安装并行安装一个2005实例以更轻松地管理事情。 – 2010-04-06 08:09:33

回答

5

最安全的选项将是您的开发环境恢复到SQL 2005,因为无论您的代码将与您的主机环境兼容。您应该可以在您的盒子上安装一个单独的2005实例,这应该可以节省时间(由于性能原因,一次只能启用2005/2008之一)。为了实现这种配置,您可能需要卸载2008,然后安装2005实例,然后安装2008实例。

关于数据,您可能需要查看BCP实用程序以便将数据复制到数据库中或从数据库中复制出来。一旦你掌握了它,它非常快捷方便。

3

您可以在开发机器上同时运行2005和2008实例(以及实际上每个实例的多个实例)(如您所述,您也可以在2008年以2005年兼容模式运行数据库,这对于禁用语法功能)。我会推荐这个,因为你说你有能力将你的安装恢复到2005年 - 只是并排运行。

然后,您可以从您的主机备份和恢复到您的开发机器,然后使用任意数量的数据库比较工具(比如Red Gate SQL Compare或ApexSQLDiff)比较开发机器上的2005和2008数据库并生成将脚本更改为在dev中测试,然后应用于生产。

3

这是因为您的开发可交付成果是数据库MDF而不是脚本源。战斗已经失败。除了部署初始引擎版本差异之外,只要尝试部署应用程序的第一次更新,就会遇到更多问题。你会发现自己试图将一个模式的三角洲应用到生产中,而不是一个简单的专长。你最终可能会使用SQL Compare或类似的工具。甚至现在,当您有1(一)个开发人员和1(一个)生产服务器时。随着您向混合中添加更多开发人员或更多部署,情况会变得越来越糟。

但有更好的方法。

一种方法是使用基于源的开发工具,如Visual Studio数据库版。 VSDB项目的交付是一个.dbschema,可以使用vsdbcmd工具将其作为差异部署投入生产。

更好的方法是通过从v。N到v。N + 1的升级脚本对版本进行版本化并部署所有内容。见Version Control and Your Database

这两种方法除了提供可管理的部署路径外,还提供数据库模式更改的源代码管理版本。

尽管即使使用基于脚本的方法,您也可以在脚本中使用2008功能,并且在部署时有惊喜,但像VSDB这样的工具实际上可以在构建/编译期间捕获这些功能。即使你犯了一个错误,通过修改脚本很容易恢复,而不是从一个新的正确降级版本的空白数据库开始。

+0

那里真的很好的资源。非常感谢......我甚至没有考虑过这样的事情。肯定会调查。这只是一个个人项目,所以不会有更多的开发者,但是任何能够保持我自己时间和理智的东西都是有益的。谢谢。 – 2010-03-30 17:08:29

相关问题