【发布时间】:2014-06-24 05:57:10
【问题描述】:
我对开发和生产 Django 设置感到困惑,我想不出一种以简单方式进行部署的好方法。这是设置:
-
/srv/www/projectprod包含我的生产代码,服务于 www.domain.com -
/srv/www/projectbeta包含我的开发代码,服务于 www.dev.domain.com - Prod 和 Dev 也分为两个不同的 virtualenvs,以隔离它们的各种 Python 包,以防万一。
我在这里要做的是在开发中进行大量更改,然后推送到我的 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 push/pull 之前,我没有看到任何可以为我重写这些文件的内容。
有没有人有任何简化此操作的技巧,或自动化此部署的方法?
【问题讨论】:
-
添加有关您如何进行部署的信息。
标签: python django mercurial fabric