diff --git a/rattail_fabric/postgresql.py b/rattail_fabric/postgresql.py index 0794f27..c044dd2 100644 --- a/rattail_fabric/postgresql.py +++ b/rattail_fabric/postgresql.py @@ -143,7 +143,7 @@ def drop_db(name, checkfirst=True): sudo('sudo -u postgres dropdb {0}'.format(name), shell=False) -def download_db(name, destination=None, port=None): +def download_db(name, destination=None, port=None, exclude_tables=None): """ Download a database from the "current" server. """ @@ -151,9 +151,10 @@ def download_db(name, destination=None, port=None): destination = './{0}.sql.gz'.format(name) run('touch {0}.sql'.format(name)) run('chmod 0666 {0}.sql'.format(name)) - sudo('sudo -u postgres pg_dump {port} --file={name}.sql {name}'.format( + sudo('sudo -u postgres pg_dump {port} {exclude_tables} --file={name}.sql {name}'.format( name=name, port='--port={}'.format(port) if port else '', + exclude_tables='--exclude-table-data={}'.format(exclude_tables) if exclude_tables else '', ), shell=False) run('gzip --force {0}.sql'.format(name)) get('{0}.sql.gz'.format(name), destination)