Postgres:仅转储模式,但保留几个表的数据

时间:2017-02-24 21:34:18

标签: database postgresql pg-dump

我有一个包含约300个表的数据库,我只想转储模式。需要注意的是,我还有大约12个表格,我也希望保留这些数据。例如我有一张名为country的表格,其中包含我喜欢的国家/地区名称。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

首先转储架构:

pg_dump -s -d dbname > /home/username/schema.sql

转储您想要下一个数据的表格:

pg_dump -a -d dbname -t table1name -t table2name -t table3name > /home/username/data.sql

然后在新服务器上恢复,以相同的顺序运行文件(架构优先)。

psql -U user -d dbname -f /home/username/schema.sql
psql -U user -d dbname -f /home/username/data.sql

如果需要,您还可以将第二个转储(数据)附加到第一个(架构)上,以使用>>创建一个要恢复的大文件。而不是>。不过,你仍然在运行两个pg_dump命令。

例如:

pg_dump -s -d dbname > /home/username/full.sql
pg_dump -a -d dbname -t table1name -t table2name -t table3name >> /home/username/full.sql
psql -U dbuser -d dbname -f /home/username/full.sql