Postgres为少数几个表备份主数据和模式

时间:2016-07-11 06:32:10

标签: postgresql

在我的数据库中,我有以m_ *和其他开头的主表。我想用下面的场景来讨论表格。

  1. 主表的备份模式+数据,即以m _ *
  2. 开头的表名
  3. 其余表格的Backuo架构结构。
  4. 我确实在某处读过以下命令

    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_*'
    

    但是我有很多桌子,我觉得把每个桌子名都放在里面很乏味。有什么整洁的方法来解决它?

1 个答案:

答案 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`

请注意,这是非常灵活的方法。