我有一个包含约300个表的数据库,我只想转储模式。需要注意的是,我还有大约12个表格,我也希望保留这些数据。例如我有一张名为country的表格,其中包含我喜欢的国家/地区名称。
我该如何做到这一点?
答案 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