Sql server 对数据库应用升级(与应用程序相关)

Sql server 对数据库应用升级(与应用程序相关),sql-server,sql-server-2005,installation,sql-server-administration,Sql Server,Sql Server 2005,Installation,Sql Server Administration,因为我以前没有这样做过,我不确定我计划这样做的方式是否可行,或者是否有更好的方式。类似于使用Windows Installer或Install Shield或Windows Installer XML(WiX)工具集。任何帮助都会很好,因为我不知道 我们有一个产品,我们每几个月就推出一个新版本。到目前为止,我们只推出了完整的版本,即1.0版或1.5版,但没有从1.0升级到1.2到1.3到。。。。你明白了,对吧!因此,任何获得1.0版的客户都无法升级到1.2或1.3版,甚至无法升级到最新版本。他们

因为我以前没有这样做过,我不确定我计划这样做的方式是否可行,或者是否有更好的方式。类似于使用Windows Installer或Install Shield或Windows Installer XML(WiX)工具集。任何帮助都会很好,因为我不知道

我们有一个产品,我们每几个月就推出一个新版本。到目前为止,我们只推出了完整的版本,即1.0版或1.5版,但没有从1.0升级到1.2到1.3到。。。。你明白了,对吧!因此,任何获得1.0版的客户都无法升级到1.2或1.3版,甚至无法升级到最新版本。他们必须卸载旧版本并安装最新版本。这是不对的,但这是我们目前可以做的。但我们想改变它

我的计划是为每个升级路径准备一个带有(Sql脚本)的安装文件。检查数据库中存储版本信息的表,并根据它运行不同的脚本来升级数据库

我担心的是,一旦我们有超过5或6个不同的版本,这种方法可能无法扩展

如果你能指出任何关于这个主题的文章或书籍,那也会很有帮助

另外,我们可以使用Windows Installer或安装Shield吗

谢谢,
_UB

您是坚持自己动手,还是希望自己投入并投资于一种工具

我非常喜欢RedGate的想法,它将“区分”两个数据库版本,然后创建一个SQL脚本、一个C#项目或一个独立的可执行文件,以从版本1升级到版本2

不是百分之百地让你从1.0、1.1、1.2、1.3升级到2.0——看看他们的网站,看看他们是否为这种情况提供了一些东西

否则,我想它会变得非常棘手和混乱


马克

你是坚持自己做,还是你能看到自己承诺并投资于一种工具

我非常喜欢RedGate的想法,它将“区分”两个数据库版本,然后创建一个SQL脚本、一个C#项目或一个独立的可执行文件,以从版本1升级到版本2

不是百分之百地让你从1.0、1.1、1.2、1.3升级到2.0——看看他们的网站,看看他们是否为这种情况提供了一些东西

否则,我想它会变得非常棘手和混乱


马克

你的问题很常见,我在上一份工作中不得不处理这种问题。除了RedGate工具之外,还有另一个工具可以帮助您完成所需的工作。这是一个叫做DB Ghost的工具。它们明确地解决了版本控制问题,并且有一个打包程序。我建议对DB Ghost产品进行一次试用,因为他们对多版本升级有一些有趣的说法。这是从他们的FAQ()中获取的:

问:我们的问题将是管理 过程中的数据结构更改 升级。我们的产品线是 收缩包装,或可从 网站。所以当用户下载 一次升级,他们可以从 一个非常新的版本,几乎没有 数据库结构更改,或 升级可能来自非常旧的版本 有许多结构性的 变化。需要管理一个升级 这一切。用户将处于非现场状态,因此 我们抓不住他们的手。我们有 希腊、澳大利亚、马来西亚、, 挪威等,如果在 全部,以远程方式处理更新 地点

答:DB Ghost Packager Plus产品是 设计来专门解决这个问题 问题,因为它可以动态处理 目标数据库所需的更新 天衣无缝

我之所以提到这一点,是因为我们公司正在尝试做类似的事情,我正在研究这个工具

谢谢,
Eric你的问题很常见,我在上一份工作中不得不处理这种问题。除了RedGate工具之外,还有另一个工具可以帮助您完成所需的工作。这是一个叫做DB Ghost的工具。它们明确地解决了版本控制问题,并且有一个打包程序。我建议对DB Ghost产品进行一次试用,因为他们对多版本升级有一些有趣的说法。这是从他们的FAQ()中获取的:

问:我们的问题将是管理 过程中的数据结构更改 升级。我们的产品线是 收缩包装,或可从 网站。所以当用户下载 一次升级,他们可以从 一个非常新的版本,几乎没有 数据库结构更改,或 升级可能来自非常旧的版本 有许多结构性的 变化。需要管理一个升级 这一切。用户将处于非现场状态,因此 我们抓不住他们的手。我们有 希腊、澳大利亚、马来西亚、, 挪威等,如果在 全部,以远程方式处理更新 地点

答:DB Ghost Packager Plus产品是 设计来专门解决这个问题 问题,因为它可以动态处理 目标数据库所需的更新 天衣无缝

我之所以提到这一点,是因为我们公司正在尝试做类似的事情,我正在研究这个工具

谢谢,
Eric

在Rails世界中,他们使用一种称为迁移的工具/方法

基本上可以归结为创建一个小sql脚本来升级和降级数据库中的每个小更改

测试应用程序时,将数据库迁移到所需的版本,部署时,应用程序可以检查所需的版本并迁移到该版本

大多数流行语言都有免费的迁移工具包,不过它们可能是某些MVC框架的一部分


迁移的一个很好的副作用是,您可以轻松地将数据库源代码存储在源代码管理存储库中

在Rails世界中,他们使用一种叫做迁移的工具/方法

基本上可以归结为创建一个用于upgr的小sql脚本