如何解决在PostgreSQL数据库之间将数据移至不同的模式
我在一台postgres服务器中的两个数据库中有一个相同的表。
我想知道是否可以将DB1中schemaA下的表复制到DB2中schemaB。 或者,将数据从DB1中schemaA下的表复制到DB2中等效的空schemaB。
我研究发现pg_dump代码有效,但是在执行之前,我需要将模式重命名为目标模式。
pg_dump -t schemaAt.table 'DB1' | psql 'DB2'
我也想知道是否可以使用“ pg_restore”命令将数据仅还原到新模式中?
任何帮助将不胜感激
谢谢
解决方法
是的,是的,唯一的方法是重命名架构,因为转储始终包含源架构名称。但这可以很容易地做到。
./pg_dump -a -t schemaA.table -U postgres -d DB1 |sed 's/schemaA/schemaB/g'| psql DB2 -h localhost -p 5432 -U postgres
上述命令会将表schemaA.table数据从Db1复制到DB2中预先存在的表schemaB.table。
披露:我为EnterpriseDB (EDB)工作
,COPY命令将仅对数据有用。有选项。
,如果要避免处理命令,最好的办法是从DB1中以CSV或文本文件格式导出数据,并使用pgAdmin工具的经典GUI向导在Postgres中导入数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。