为什么我在 psycopg2 中得到 'Error type "jsonb" does not exist'?
Why am I getting 'Error type "jsonb" does not exist' in psycopg2?
当我运行以下内容时:
import psycopg2
#...
cur.execute("DROP TABLE IF EXISTS Song CASCADE")
cur.execute("CREATE TABLE Song "
"(songId INT PRIMARY KEY, "
"data jsonb, "
"lastUpdate TIMESTAMP)")
#...
我明白了
Error type "jsonb" does not exist`
psycopg2 安装在 virtualenv 上,pip show psycopg2
给出 Version: 2.6.1
PostgreSQL 版本为 9.4.4。
我可以使用 psql
并手动创建一个 table 和 jsonb
类型的列。当我通过 python2 和 psycopg2 运行 时导致错误的原因是什么?
我不确定这是否重要,但我刚刚从 PostgreSQL 9.3 更新到 9.4。我尝试使用 pip 重新安装 psycopg2,但没有帮助。我试过几次重启 PostgreSQL 服务器。
编辑:
当我 SELECT Version()
通过 psycopg2 时,它显示 returns PostgreSQL 版本 9.3。我怎样才能让 psycopg2 连接到 Postgres 9.4 服务器?
问题是 Postgres 9.3 版留下了一个配置文件,而 psycopg2 可能正在读取它。
:dpkg -l | grep postgresql-9.3
rc postgresql-9.3 9.3.9-1.pgdg14.04+1
我清除了与 Postgres
相关的所有内容,删除了所有配置文件,并仅重新安装了版本 9.4。
经过一些调整,psycopg2
正确找到了服务器并能够连接到它。
[('PostgreSQL 9.4.4 on i686-pc-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 32-bit',)]
我也有。然后我测试
pavlov@pavlov-pc:/etc/apt$ sudo service postgresql status
9.3/main (port 5432): online
9.4/main (port 5433): online
哦!不同端口的两个版本!
当我运行以下内容时:
import psycopg2
#...
cur.execute("DROP TABLE IF EXISTS Song CASCADE")
cur.execute("CREATE TABLE Song "
"(songId INT PRIMARY KEY, "
"data jsonb, "
"lastUpdate TIMESTAMP)")
#...
我明白了
Error type "jsonb" does not exist`
psycopg2 安装在 virtualenv 上,pip show psycopg2
给出 Version: 2.6.1
PostgreSQL 版本为 9.4.4。
我可以使用 psql
并手动创建一个 table 和 jsonb
类型的列。当我通过 python2 和 psycopg2 运行 时导致错误的原因是什么?
我不确定这是否重要,但我刚刚从 PostgreSQL 9.3 更新到 9.4。我尝试使用 pip 重新安装 psycopg2,但没有帮助。我试过几次重启 PostgreSQL 服务器。
编辑:
当我 SELECT Version()
通过 psycopg2 时,它显示 returns PostgreSQL 版本 9.3。我怎样才能让 psycopg2 连接到 Postgres 9.4 服务器?
问题是 Postgres 9.3 版留下了一个配置文件,而 psycopg2 可能正在读取它。
:dpkg -l | grep postgresql-9.3
rc postgresql-9.3 9.3.9-1.pgdg14.04+1
我清除了与 Postgres
相关的所有内容,删除了所有配置文件,并仅重新安装了版本 9.4。
经过一些调整,psycopg2
正确找到了服务器并能够连接到它。
[('PostgreSQL 9.4.4 on i686-pc-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 32-bit',)]
我也有。然后我测试
pavlov@pavlov-pc:/etc/apt$ sudo service postgresql status
9.3/main (port 5432): online
9.4/main (port 5433): online
哦!不同端口的两个版本!