Postgres:仅转储模式,但将数据完好无损地放在几张表中



我有一个带有〜300个表的数据库,我只想转储模式。警告是大约有12个表,我也想保留数据。例如我有一个名为"国家/地区"的桌子,里面有一个国家的名字,我想保存在垃圾场中。

我该如何完成?

首先倾倒架构:

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

最新更新