我有一个带有〜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