Let a postgres db download exclude some tables

This commit is contained in:
Lance Edgar 2018-08-16 11:53:39 -05:00
parent 440130439e
commit 190a8318cc

View file

@ -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)