I often want to omit data from certain tables during PostgreSQL database backup. Today I will look into this and post my findings for further reference.
PostgreSQL post-9.2 version
Since PostgreSQL 9.2 excluding data from set of tables is almost effortless as it requires only additional
exclude-table-data parameter during backup process.
$ pg_dump --exclude-table-data=logs_table applicationdb > backup.sql
This parameter can contain pattern or can be used multiple times to exclude data from different tables.
PostgreSQL pre-9.2 version
PostgreSQL versions older than 9.2 require two step process to achieve the same results.
The first step is to backup database schema.
$ pg_dump --schema-only applicationdb > backup_schema.sql
The second step is to backup table data excluding certain table.
$ pg_dump --data-only --exclude-table logs_table applicationdb > backup_data.sql