我目前正在使用fabric为django应用编写部署脚本。对于我来说,如果需要回滚,有一个系统可以对应用程序使用的virtualenv进行版本化,这似乎是必要/有用的。
我能想到的最强大的方法是创建virtualenvs,其名称等于需求文件内容的md5哈希值。这意味着当需求发生变化时,校验和将发生变化,我可以使用新哈希复制/更新virtualenv并保留旧的哈希virtualenv,以防我需要回滚(那么只需要切换'当前'符号链接)
麻烦的是我正在使用例如嵌套的需求文件语法。我的production.txt需求文件(-r base.text
)所以md5哈希不会考虑基本需求的变化等。
在安装之前是否有任何输出点可以解析这些文件?我不想安装它们然后点击冻结只是为了弄清楚是否有变化。
答案 0 :(得分:1)
为什么不使用简单的unix工具(如cat
)来计算md5,而不是使用嵌套需求。只需使用多个需求文件。
或者,如果你真的想要我们嵌套的需求,你需要编写一个小的shell脚本,为-r file.txt创建并添加到你的md5计算中。
虽然这是一个很好的主意。散列requirements.txt文件并使用该名称保存env。在分布式构建系统中也可以轻松快速地缓存它。