为django部署版本化virtualenv - 需求的pip输出

时间:2017-04-21 17:05:02

标签: django pip virtualenv

我目前正在使用fabric为django应用编写部署脚本。对于我来说,如果需要回滚,有一个系统可以对应用程序使用的virtualenv进行版本化,这似乎是必要/有用的。

我能想到的最强大的方法是创建virtualenvs,其名称等于需求文件内容的md5哈希值。这意味着当需求发生变化时,校验和将发生变化,我可以使用新哈希复制/更新virtualenv并保留旧的哈希virtualenv,以防我需要回滚(那么只需要切换'当前'符号链接)

麻烦的是我正在使用例如嵌套的需求文件语法。我的production.txt需求文件(-r base.text)所以md5哈希不会考虑基本需求的变化等。

在安装之前是否有任何输出点可以解析这些文件?我不想安装它们然后点击冻结只是为了弄清楚是否有变化。

1 个答案:

答案 0 :(得分:1)

为什么不使用简单的unix工具(如cat)来计算md5,而不是使用嵌套需求。只需使用多个需求文件。

或者,如果你真的想要我们嵌套的需求,你需要编写一个小的shell脚本,为-r file.txt创建并添加到你的md5计算中。

虽然这是一个很好的主意。散列requirements.txt文件并使用该名称保存env。在分布式构建系统中也可以轻松快速地缓存它。