使用Mercurial进行Django Dev / Prod部署

时间:2014-06-24 05:57:10

标签: python django mercurial fabric

我有一个开发和生产Django设置的难题,我无法找到一种以简单方式部署的好方法。这是设置:

  • /srv/www/projectprod包含我的生产代码,请访问www.domain.com
  • /srv/www/projectbeta包含我的开发代码,请访问www.dev.domain.com
  • Prod和Dev也被分成两个不同的virtualenvs,以隔离他们的各种Python包,以防万一。

我想在这里做的是在dev中进行一系列更改,然后推送到我的Mercurial服务器,然后在稳定时重新生成这些更改。但是有一些事情让这变得复杂:

  • wsgi.py包含对virtualenv的activate_this.py调用,但该路径的范围限定为prod或dev,因此需要在部署之前进行编辑。
  • manage.py在顶部有一个shebang,用于为virtualenv定义正确的python路径。 (目前这是#!/srv/ve/.virtualenvs/project-1.2/bin/python所以我想知道我是否可以删除它以简化事情)
  • settings.py包含模板,静态文件,媒体根等的路径,这些路径都存储在/srv/www/project[prod|dev]/*

我看过Fabric,但我没有看到任何内容会在执行mercurial推/拉之前为我重写这些文件。

有没有人有任何简化这个的提示,或者自动化部署的方法?

1 个答案:

答案 0 :(得分:0)

  • 针对不同环境的两个分支(每个分支具有特定于env的更改,因此 - 部署之前的其他合并)

  • MQ扩展,变更集中的“干净”代码,单个分支上的每个环境的MQ补丁(以及应用补丁的准确性)
相关问题