自动化和简化从本地到服务器的django部署

时间:2012-02-07 00:13:01

标签: django deployment

最近,我已经开始将我正在进行中的django站点从本地部署到服务器。但我一直在手动操作,这是丑陋的,无组织的,并且容易出错。

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

  1. 确保提交所有更改并将其推送到远程源存储库(mercurial)并标记发布。
  2. 将版本部署到服务器(包括服务器中缺少的所有第三方应用程序)
  3. 将模型更改应用于服务器上的数据库
  4. 对于2),我还有两个问题。部署的来源应该是我的本地环境还是源存储库?我需要差异化或完整部署吗?

    对于3),我在本地使用South将模型更改应用于数据库。我是否也在服务器上做同样的事情?如果是这样,我如何一次应用多个迁移?

1 个答案:

答案 0 :(得分:2)

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

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

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