什么是部署SQL Server数据库的最佳版本中立方法?

时间:2013-09-09 19:02:34

标签: sql sql-server sql-server-2008 sql-server-2012 localdb

在我的开发框中,我总是运行最新版本的SQL Server。我经常将数据库从我的开发盒部署到实时/临时区域进行审查或测试。我已经做了很多次,这一直是一个痛苦的过程,但我意识到我需要找到一种更简单,更可靠和一致的方式来执行这个基本操作。

我通常纯粹使用WebMatrix进行部署,但它工作正常,但由于某些原因我在服务器上运行时遇到了问题。因此,我正在寻求替代解决方案。

创建一个SQL转储文件可能会有效,但它不是一个可接受的解决方案,数据库包含图像,并且很容易超过2 gig的数据,这将花费很长时间。

导入/导出实用程序由于不完整的架构副本,标识插入和检查问题而失败。针对这些问题提供的解决方案在我的特定情况下无效。

由于SQL Server 2008和2012之间存在一些奇怪的不兼容性,备份和还原方法也会失败.SQL Server 2008 Management Studio在2012数据库的还原过程中抛出异常。奇怪的是,即使我将数据库的兼容性设置为2008版本,也会发生这种情况。

我没有尝试过分离,复制和重新附加文件的方法,但我没有费心去尝试,因为它可能会因为备份和恢复方法的原因而失败。

那里还有其他选择吗?此外,为什么这对于一项如此普遍和重要的任务来说难以置信,特别是在2013年的这一天?获得真正的微软!

3 个答案:

答案 0 :(得分:2)

我们采用RedGate的工具改变了在服务器,实例和版本之间部署和移动数据库的方法。它们很贵,但值得恕我直言。

答案 1 :(得分:1)

我的团队为〜所有内容创建脚本。 数据库创建,更改,插入等等 我们编写所有脚本来检查事物是否存在,然后再尝试创建它们。 Aka,我们可以反复运行脚本并获得相同的结果。

我们使用SqlCmd.exe部署到不同的环境。

修改

请参阅:

http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-views-stored-procedures-and-the-like.aspx

http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx

=============

如果那是“太多”,那么我同意另一张海报,RedGate是你的朋友。

答案 2 :(得分:0)

以下几点,您是否考虑过VS2012中的数据库项目?它们允许您编写所需的表,sp,触发器,用户等脚本,生成sql cmd脚本,进行更改和模式比较以及版本控制数据库代码,我当然推荐它

  

“创建一个SQL转储文件可能会有效,但它不是一个   可接受的解决方案数据库包含图像,很容易超过2   数据演出需要永远。“

为什么这是一个问题?你在哪里从哪个连接转移文件?

  

“由于一些奇怪的原因,备份和还原方法也失败了   SQL 2008和2012之间的不兼容性.SQL 2008管理   Studio在2012年的还原过程中抛出异常   数据库。这种情况很奇怪,即使我设置了   数据库与版本2008的兼容性“

如果在恢复之前在2008年创建了文件,那么这不应该是一个问题。如果您在2008实例中创建新数据库,然后从中进行备份并将其恢复到具有2008兼容性的2012实例,那么您应该能够在那里使用它,从2012实例备份它并再次恢复到2008之后。