我已经编写了一段时间的 Web 应用程序,而没有更改实时服务器上的任何内容,因为有一些功能要立即添加。我发现我无法跟踪自上次更新实时服务器以来发生的变化,这让我有点恐慌,因为忘记上传文件或不更改特定文件会破坏应用程序。所以我的问题是,跟踪编码环境中已更改的内容以及实时服务器上已更改的内容的最佳做法是什么,以便在用户不注意的情况下进行更改?
问问题
468 次
1 回答
2
在生产中使用一些存储库系统和发布模式。我的做法是:
- 每当我想在生产上部署时,我都会创建应用程序的标签。给它一个发布版本。
- 我在 Trunk 中更新了当前版本,其中将开发新的功能。
- 如果需要在下一个版本之前完成产品版本,我会创建一个分支。这个分支起源于以前的版本。然后我们进行补丁发布。为它创建一个标签。
- 我们将分支合并到主干。
我们按照这个循环发布来发布。
请阅读版本控制。这可能会帮助http://svnbook.red-bean.com/en/1.5/index.html
在数据库上#
我们曾经在 alter-script 文件中更改数据库。每个版本一个 alter-script 文件。所有需要发布的更改,我们都保存在一个更改脚本中。我们曾经有一个 BASELINE 表来跟踪数据库的发布版本,它与生产发布版本相同。这可行,但有人工干预。但是任何给定时间查看 BASELINE 表,我都可以知道我的数据库的状态是什么,以及已经运行了哪些文件/更改脚本。
我们现在已经转移到LiquiBase,这非常好。我可以跟踪曾经进入数据库的每个查询、更新或更改。有一个很好的回滚计划。最重要的是,学习 Liquibase 非常容易。
在上述任何一种情况下,SVN 都可以非常有效地为我们处理修订。
于 2010-12-27T12:35:14.087 回答