Psycopg2:升级还是不升级

Psycopg2: to upgrade or not to upgrade

我刚刚将我的开发虚拟环境从 Django 1.11 升级到最新的 2 版本 (2.2.8),并将各种知名应用程序和 django 支持也升级到最新。修复各种向后不兼容后,一切似乎都很好。

现在我正在查看 pip list -o 结果,看看哪些内容没有升级。大多数是我可以自己查看的应用程序代码。但是,psycopg2 是 Django 和 Postgresql(我刚刚升级到 12)之间 "plumbing" 的重要组成部分。我安装了 2.7.3.2。最新的是 2.8.4。我对升级意味着什么、做什么或修复什么,以及任何问题可能是什么样子都没有任何感觉。

如果 Django 版本对已安装的内容不满意,我认为升级安装 Django 会升级 Psycopg2 是否正确?在哪里可以找到针对此版本 Django 的推荐内容?更一般地说,我是否应该升级它,如果升级到最新的 2.7 或最新的 2.8? (FWIW 我注意到 Centos 7.7 仅发布了 2.5.1!)

Django 2.2 supports PostgreSQL 9.4 and higher. psycopg2 2.5.4 or higher is required, though the latest release is recommended.

不,除非需要特定功能/错误修复,否则无需升级。

虽然我个人的偏好是跟上最新的版本,尤其是在dev中(当然,审查所有依赖项都支持它)。

,如果你想使用 Postgresql 12,你需要升级 psycopg2,作为对 postgresql 12 的支持仅自 psycopg2 2.8.4.

后添加

这样的核心包开发得很好,保持向后兼容性,基本功能几乎没有变化。

还有一点要注意:psycopg2 被分成两个包(2.8 之后更加独立)- psycopg2psycopg2-binary。为了不深入细节,建议在 requirements.txt 中设置选项(如果您使用的是 virtualenv):

  • 开始 - psycopg2-binary
  • 如果有任何 ssl 问题,或者想从源代码构建 - 然后设置 psycopg2

看起来您正在使用系统范围的 python 软件包安装,由 os 分发代表ositories 提供。

虽然不建议仓促切换,但肯定会建议考虑使用 virtualenv(使用 pipenv 或 virtualenwrapper 等帮助程序)为每个项目分别提供良好的本地 python 环境,并直接从 pypi 且未绑定到 os 供应商。