pygresql copy_from 给出关系不存在错误

问题描述 投票:0回答:2

我有以下代码

pg_con = conns.con_to_pg()
cur = pg_con.cursor()

with open('up_md.csv', 'r') as f:
    next(f)  # Skip the header row.
    tbl = 'bidba.upmeta'
    cur.copy_from(f, tbl, 'csv', sep=',')

pg_con.commit()

架构和表

bidba.upmeta
存在于我的postgres数据库中。 无论我做什么,我都会收到消息:
relation "bidba.upmeta" does not exist
错误。

我尝试过用单引号、双引号、不带引号来写。 没有任何帮助。我缺少什么?

copy_from
方法有问题吗?

python pygresql
2个回答
6
投票

这是一个已知问题,将在下一版本的 PyGreSQL 中修复。

作为解决方法,您可以通过

tbl = 'upmeta'
。如果您的
bidba
模式位于搜索路径中,这应该有效。否则,您可以在调用
SET search_path TO bidba, public
之前使用
copy_from
将其放入当前会话的搜索路径中。


0
投票

您也可以这样修复:

1- set_schema =“设置模式‘bidba’” cur.execute(set_schema)

2- cur.copy_from(f, 'upmeta', 'csv', sep=',')

© www.soinside.com 2019 - 2024. All rights reserved.