2012-02-07 73 views
0

最近,我已经开始部署我的从事本地工作的django站点到服务器。但我一直在手动做,这很丑陋,没有组织,并且容易出错。自动化和简化从本地到服务器的django部署

我正在寻找一种方式来自动化和简化了以下部署任务:

  1. 确保所有更改提交并推送至远程源库(水银)和标记释放。
  2. 部署发布到服务器(包括任何必需的第三方应用程序从服务器丢失)
  3. 应用到数据库模型的变化在服务器上

对于2),我有两个进一步的问题。部署的源头应该是我的本地环境还是源代码库?我需要差异还是全面部署?对于3),我在本地使用South来将模型更改应用于数据库。我在服务器上做同样的事吗?如果是这样,我该如何一次应用多个迁移?

回答

2

我认为Fabric是事实上轻量级的python部署工具。 http://docs.fabfile.org/en/1.3.4/index.html。这非常简单,并且可以帮助您保持您的部署组织和精简。它允许简单的scp或rsync。此外,它很容易与django测试集成。

对于我的小型项目,我只是将我的部署源作为我的本地环境。我签出一份干净的副本并从那里部署。如果我部署后出现任何错误,将它与我的版本控制集成以进行快速回滚可能会更好。

我从来没有使用南方,但我想你可以写一个fab命令来同步你的生产服务器。如果你在开发中使用南方,我无法想象为什么你不想在生产中使用它?