在我的开发框中,我总是运行最新版本的SQL Server。我经常将数据库从我的开发盒部署到实时/临时区域进行审查或测试。我已经做了很多次,这一直是一个痛苦的过程,但我意识到我需要找到一种更简单,更可靠和一致的方式来执行这个基本操作。
我通常纯粹使用WebMatrix进行部署,但它工作正常,但由于某些原因我在服务器上运行时遇到了问题。因此,我正在寻求替代解决方案。
创建一个SQL转储文件可能会有效,但它不是一个可接受的解决方案,数据库包含图像,并且很容易超过2 gig的数据,这将花费很长时间。
导入/导出实用程序由于不完整的架构副本,标识插入和检查问题而失败。针对这些问题提供的解决方案在我的特定情况下无效。
由于SQL Server 2008和2012之间存在一些奇怪的不兼容性,备份和还原方法也会失败.SQL Server 2008 Management Studio在2012数据库的还原过程中抛出异常。奇怪的是,即使我将数据库的兼容性设置为2008版本,也会发生这种情况。
我没有尝试过分离,复制和重新附加文件的方法,但我没有费心去尝试,因为它可能会因为备份和恢复方法的原因而失败。
那里还有其他选择吗?此外,为什么这对于一项如此普遍和重要的任务来说难以置信,特别是在2013年的这一天?获得真正的微软!
答案 0 :(得分:2)
我们采用RedGate的工具改变了在服务器,实例和版本之间部署和移动数据库的方法。它们很贵,但值得恕我直言。
答案 1 :(得分:1)
我的团队为〜所有内容创建脚本。 数据库创建,更改,插入等等 我们编写所有脚本来检查事物是否存在,然后再尝试创建它们。 Aka,我们可以反复运行脚本并获得相同的结果。
我们使用SqlCmd.exe部署到不同的环境。
修改
请参阅:
和
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之后。