【发布时间】:2017-07-15 21:05:06
【问题描述】:
我有一个包含大约 300 个表的数据库,我想只转储模式。需要注意的是,我还想保留大约 12 个表。例如我有一个名为 country 的表,其中包含我想保存在转储中的国家/地区名称。
我怎样才能做到这一点?
【问题讨论】:
标签: database postgresql pg-dump
我有一个包含大约 300 个表的数据库,我想只转储模式。需要注意的是,我还想保留大约 12 个表。例如我有一个名为 country 的表,其中包含我想保存在转储中的国家/地区名称。
我怎样才能做到这一点?
【问题讨论】:
标签: database postgresql pg-dump
首先转储架构:
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
【讨论】: