在我的数据库中,我有以m_ *和其他开头的主表。我想用下面的场景来讨论表格。
我确实在某处读过以下命令
pg_dump -U "postgres" -h "local" -p "5432"
-d dbName -F c -b -v -f c:\uti\backup.dmp
--exclude-table-data '*.table_name_pattern_*'
--exclude-table-data 'some_schema.another_*_pattern_*'
但是我有很多桌子,我觉得把每个桌子名都放在里面很乏味。有什么整洁的方法来解决它?
答案 0 :(得分:1)
使用Linux:
文件foo.sh
(调整过滤条件):
psql <connection and other parameters> -c "copy (select format('--exclude-table-data=%s.%s', schemaname, tablename) from pg_tables where schemaname in ('public', 'foo') and tablename<>'t') to stdout;"
命令(关于反引号的注释):
pg_dump <connection and other parameters> `./foo.sh`
请注意,这是非常灵活的方法。