psycopg3 是 psycopg2 的分支,还是替代升级?

Mar*_*son 7 python psycopg2 psycopg3

我看到对 psycopg2 和 psycopg3 的引用,但没有明确的指导关于两者之间过渡的路线图。我发现随着时间的推移,出现了大量关于 psycopg2 的问题。

psycopg3 是否打算替代 psycopg2?这个版本有大量采用吗?

psycopg2 会有长期版本吗?是否有任何令人信服的理由选择一个版本而不是另一个版本?

Col*_*Two 4

来自psycopg3 的文档

Psycopg 3 是一个新设计的用于 Python 编程语言的 PostgreSQL 数据库适配器。

Psycopg 3 为使用过 Psycopg 2 或任何其他 DB-API 2.0 数据库适配器的每个人提供了一个熟悉的界面,但允许使用更现代的 PostgreSQL 和 Python 功能,例如:

  • 异步支持
  • Python 对象的 COPY 支持
  • 重新设计的连接池
  • 支持静态类型
  • 服务器端参数绑定
  • 准备好的报表
  • 报表管道
  • 二进制通信
  • 直接访问 libpq 功能

乍一看,psycopg3 似乎支持更现代的 python 和 postgresql 功能,例如打字和异步。这样做可能需要对 psycopg2 进行大量向后不兼容的更改,因此需要新版本和分叉开发。

  • @roganjosh我不确定你为什么在我的答案中抱怨随机的psycopg细节,但是[psycopg3确实有executemany](https://www.psycopg.org/psycopg3/docs/api/cursors.html#the -cursor-class) 并且它没有 psycopg2 有的警告。 (3认同)