我在一个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。
COPY命令将非常有用,仅用于数据。有多种选择。
如果你想避免处理命令,最好的办法是从DB1导出CSV或Text文件中的数据,并使用pgAdmin工具的classy GUI向导在Postgres中导入数据。