def dump_db(dump_path, schema_path, password='', *db_args):
schema = yaml.load(open(schema_path))
password = password or os.environ.get('DB_DEFAULT_PASS', '')
os.putenv('PGPASSWORD', password)
cmd = 'PGPASSWORD={password} pg_dump -Fc -Z 9 {args} {tables} -f {filename}'.format(
password=password,
args='-d {} -U {} -h {} -p {} '.format(
*(db_args or [os.environ.get(var) for var in ['DB_DEFAULT_NAME', 'DB_DEFAULT_USER',
'DB_DEFAULT_SERVICE', 'DB_DEFAULT_PORT']])),
tables=' '.join('-t {}'.format(table) for table in schema),
filename=dump_path
)
logging.debug('Dumping DB with following command: {}'.format(cmd))
subprocess.run(cmd, shell=True)
评论列表
文章目录