2011-06-13 72 views
2

我需要自动将应用程序的现有部署升级到应用程序的最新稳定版本。我目前有一个计划,通过将每个更改存储在升级应用程序中,然后按顺序从一个版本升级到每个新版本,直到我到达最新版本。每次我们有新的稳定版本时,我都会强制所有开发人员将升级代码添加到升级应用程序中。除了我们有一个MySQL数据库,其中模式有时会改变并且我们添加存储过程之外,这不会很复杂。另外,我们通常不得不换出一些二进制文件。该应用程序由一个Web应用程序和一个Windows服务组成。将现有部署升级到最新版本的最佳方法

我的问题是,有没有更简单的方法来做到这一点?在我看来,我应该能够打包Mercurial存储库并自动将更改推送到已部署的应用程序。我正在为应用程序使用C#.NET,MySQL和ASP.NET。

回答

0

我只想让我的一位程序员写一个非常聪明的db脚本,不需要存储连续的更改。它只会将当前模式与新模式进行比较并进行更改。这样,我不必担心它。

0

我明白为什么需要对模式更改进行顺序升级,但为什么要对应用程序执行相同的操作,而不是一步升级?无论如何,有像KwateeSDCM或Capistrano这样的部署工具可以将部署自动化到dev/qa/production服务器。 KwateeSDCM保留每个文件的MD5哈希值,允许差分升级,当您的大型应用程序频繁升级时,它只会影响小文件,所以它最终可以完成您想要的任务。

+0

嗯,我想我的想法是,因为我必须按顺序通过每个数据库版本(即如果我在一个版本中添加了一列但在另一版本中删除了另一个版本,这是捕获它的唯一方法)该程序可能会或可能不会受到架构更改的影响。另外,除非我只是替换升级过程中的每个文件,否则每个修订版都会更改不同的文件。此外,还有XML文件,其中有我不能松动的配置信息。 – 2011-06-14 15:31:01

+0

它也需要是顺序的,因为我们希望所有的部署都可以由同一个应用程序升级到不同的版本。 – 2011-06-14 18:41:24