【问题标题】:Django Dev/Prod Deployment using Mercurial使用 Mercurial 的 Django 开发/产品部署
【发布时间】: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


【解决方案1】:
  • 针对不同环境的两个分支(每个分支都有特定于 env 的更改,因此 - 部署前额外合并)

  • MQ 扩展、变更集中的“干净”代码、单个分支之上每个环境的 MQ 补丁(以及应用|不应用补丁的准确性)

【讨论】:

    猜你喜欢
    • 2021-07-31
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多