我想知道你们是如何管理两个SQL Server之间的数据库部署的,特别是SQL Server2005。现在,有了一个开发和一个实时的开发。因为这应该是构建脚本的一部分(标准的windows批处理,即使是目前复杂的那些脚本,我可能稍后会切换到PowerShell或更多),Enterprise Manager/Management Studio Express不算数。
您是否只需复制.mdf文件并附加它?在处理二进制数据时,我总是有点小心,因为这似乎是一个兼容性问题(即使开发和live应该始终运行相同版本的服务器)。
或者--考虑到T-SQL中缺少"EXPLAIN CREATE TABLE“--您是否需要将现有数据库导出到可以在目标服务器上运行的SQL-Scripts?如果是,有没有工具可以自动将给定的数据库转储到SQL查询中,并且可以在命令行上运行?(同样,Enterprise Manager/Management Studio Express不包括在内)。
最后-考虑到实时数据库已经包含数据的事实,部署可能不涉及创建所有表,而是检查结构上的差异并改为更改实时表,当现有字段发生变化时,这也可能需要数据验证/转换。
现在,我听说了很多关于Red Gate产品的好消息,但是对于爱好项目来说,价格有点太高了。
那么,您将使用什么来自动将SQL Server数据库从Test部署到Live?
发布于 2008-08-02 23:51:09
我已经开始手工编写我的所有DDL (创建/更改/删除)语句,将它们作为文本文件添加到我的.sln中,并使用普通的版本控制(使用subversion,但任何修订控制都应该有效)。这样,我不仅获得了版本控制的好处,而且从dev/stage更新实时代码和数据库的过程也是相同的-标记、分支等工作都是相同的。
否则,我同意redgate是昂贵的,如果你没有公司为你购买它。如果你能让一家公司为你买下它,那它真的是值得的!
发布于 2008-08-02 23:40:05
对于我的项目,我在Microsoft的SQL比较和REd的数据库发布向导之间切换,您可以下载免费的here。
向导不如SQL Compare或SQL Data Compare那么灵巧,但它做到了这一点。一个问题是,它生成的脚本可能需要重新排列和/或编辑,才能在一个镜头中流动。
从好的方面来说,它可以移动你的模式和数据,这对于一个免费的工具来说并不是坏事。
发布于 2008-08-18 10:47:51
别忘了微软的解决方案:Visual Studio 2008 Database Edition。包括用于将更改部署到数据库的工具,在数据库之间产生模式和/或数据更改的差异,单元测试,测试数据生成。
它很贵,但我用了一段时间的试用版,觉得它很棒。它使数据库像其他代码一样易于使用。
https://stackoverflow.com/questions/580
复制相似问题