psycopg2 与 postgres14 不兼容 Mac OS 大苏尔
psycopg2 not compatible with postgres14 Mac OS Big Sur
前几天我做了一个 brew update,将我的 postgres 版本从 13 更新到 14,这导致我在使用 psycopg2 时遇到这个错误
psycopg2.errors.UndefinedFunction: function array_cat(anyarray, anyarray) does not exist
我花了一段时间才弄清楚发生了什么,但降级到 postgres@13 解决了这个问题。我找不到任何关于 postgres psycopg2 与哪些版本兼容的信息,但它似乎确实不适用于 postgres@14 任何人都可以确认这一点或指出我在 psycopg2 中支持的版本吗?
This mailing list thread quotes the Postgresql 14 release notes 即
User-defined objects that reference certain built-in array functions along with their argument types must be recreated (Tom Lane)
Specifically, array_append(), array_prepend(), array_cat(), array_position(), array_positions(), array_remove(), array_replace(), and width_bucket() used to take anyarray arguments but now take anycompatiblearray. Therefore, user-defined objects like aggregates and operators that reference those array function signatures must be dropped before upgrading, and recreated once the upgrade completes.
因此,如果您有任何引用 array_cat 的用户定义函数,听起来就是这样。
前几天我做了一个 brew update,将我的 postgres 版本从 13 更新到 14,这导致我在使用 psycopg2 时遇到这个错误
psycopg2.errors.UndefinedFunction: function array_cat(anyarray, anyarray) does not exist
我花了一段时间才弄清楚发生了什么,但降级到 postgres@13 解决了这个问题。我找不到任何关于 postgres psycopg2 与哪些版本兼容的信息,但它似乎确实不适用于 postgres@14 任何人都可以确认这一点或指出我在 psycopg2 中支持的版本吗?
This mailing list thread quotes the Postgresql 14 release notes 即
User-defined objects that reference certain built-in array functions along with their argument types must be recreated (Tom Lane)
Specifically, array_append(), array_prepend(), array_cat(), array_position(), array_positions(), array_remove(), array_replace(), and width_bucket() used to take anyarray arguments but now take anycompatiblearray. Therefore, user-defined objects like aggregates and operators that reference those array function signatures must be dropped before upgrading, and recreated once the upgrade completes.
因此,如果您有任何引用 array_cat 的用户定义函数,听起来就是这样。