首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用psycopg3跨服务器复制表

使用psycopg3跨服务器复制表
EN

Stack Overflow用户
提问于 2022-05-13 17:34:08
回答 1查看 188关注 0票数 2

我正在使用psycopg3文档中的示例将表从一个数据库复制到另一个数据库:链接

代码语言:javascript
复制
dsn_src = 'postgresql:///dev_db'
dsn_tgt = 'postgresql:///prod_test'

with psycopg.connect(dsn_src) as conn1, psycopg.connect(dsn_tgt) as conn2:
    with conn1.cursor().copy("COPY sample TO STDOUT (FORMAT BINARY)") as copy1:
        with conn2.cursor().copy("COPY sample FROM STDIN (FORMAT BINARY)") as copy2:
            for data in copy1:
                copy2.write(data)

运行此操作将导致以下错误

代码语言:javascript
复制
QueryCanceled: COPY from stdin failed: error from Python: TypeError - can't write memoryview
CONTEXT:  COPY sample, line 1

正如文档所建议的那样,源模式和目标模式是相同的,如果删除格式规范(FORMAT BINARY),则此错误仍然存在。

有办法解决这个memoryview错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-13 19:21:01

猜测您使用的是psycopg3 <= 3.0.11。这是固定在3.0.12每发行说明。我在3.0.11中运行了代码,如您所示,它失败了。我升级到3.0.13,它成功了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72233481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档