django - Psycopg2:升级或不升级

标签 django upgrade psycopg2

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

现在我正在查看 pip list -o 结果,看看哪些内容尚未升级。大多数是我可以自己检查的应用程序代码。然而,psycopg2 是 Django 和 Postgresql(我刚刚升级到 12)之间“管道”的一个重要部分。我安装了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.

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

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

,如果您想使用 Postgresql 12,则需要升级 psycopg2,因为对 postgresql 12 的支持仅在psycopg2 2.8.4 .

此类核心包开发良好,保持向后兼容性,基本功能几乎没有变化。

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

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

看起来您正在使用系统范围的 python 软件包安装,由操作系统分发存储库提供。

虽然不建议急于切换,但绝对建议考虑使用 virtualenv(带有 pipelinenv 或 virtualenwrapper 等帮助程序),为每个项目单独拥有良好的本地 python 环境,并直接从 pypi 安装包。并且不受操作系统供应商的约束。

关于django - Psycopg2:升级或不升级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59303269/

相关文章:

javascript - 如何使用 jQuery 进行 "tiny release"升级?

postgresql - 向 Postgres 进行身份验证时如何使用自定义密码哈希算法?

python - 创建用于 Django 的 PostgreSQL 数据库

java - hibernate 升级: Unknown service requested

Python - 登录后Django站点管理页面为空

unix - 将 Amazon EC2 实例从 t1.micro 升级到 medium,实例存储保持不变

python - 如何在 NOT IN 语句中使用 Postgresql ANY 运算符

python - ImportError : "No modules named". 但模块已安装在 dist-packages 中

mysql - 在django中对表记录进行排序

python - django 按多对多对象的计数排序