我目前正在尝试pg_dump
,但它发出的错误似乎无法找到任何相关信息。
我正在尝试使用以下命令转储表archive_table_test
:
pg_dump -h xxx -p xxx -d xxx -U xxx -W --table=archive_table_test --column-inserts > ~/dumps/test_dump_5_31.sql
但我收到以下错误:
pg_dump: [archiver (db)] query failed: ERROR: "ONLY relation" is not supported
我找不到Postgres用户收到此错误的任何示例,因此我不知道从哪里开始。
我想要的结果是标准pg_dump
输出到带有insert语句的所有.sql
文件。
任何帮助都会很高兴。
PostgreSQL 8.0.2,Redshift 1.0.2369
答案 0 :(得分:2)
在Redshift中,pg_dump只导出模式,不是数据。
pg_dump -h XXX -U XXX -d XXX -p 5439 -W --table=XXXX.dim_item_sku > abc.sql
限制:pg_dump仍会产生一些特定于postgres的语法,并且还忽略了表的Redshift SORTKEY和DISTSTYLE定义。
另一个不错的选择是使用已发布的AWS管理脚本视图来生成DDL。它处理SORTKEY / DISTSTYLE,但是我发现它在捕获所有FOREIGN KEY时是错误的,并且没有处理表权限/所有者。你的milage可能会有所不同。
如果你想要转储数据,你仍然需要在每个表上使用UNLOAD命令。