Add postgresql.script()
for running arbitrary SQL script
This commit is contained in:
parent
ab822411be
commit
8b8df95633
|
@ -71,6 +71,23 @@ def sql(c, sql, database='', port=None, **kwargs):
|
|||
return c.sudo(cmd, user='postgres', **kwargs)
|
||||
|
||||
|
||||
def script(c, path, database='', port=None, user=None, password=None):
|
||||
"""
|
||||
Execute a SQL script. By default this will run as 'postgres' user, but can
|
||||
use PGPASSWORD authentication if necessary.
|
||||
"""
|
||||
port = '--port={}'.format(port) if port else ''
|
||||
if user and password:
|
||||
kw = dict(pw=password, user=user, port=port, path=path, db=database)
|
||||
return c.sudo(" PGPASSWORD='{pw}' psql --host=localhost {port} --username='{user}' --file='{path}' {db}".format(**kw),
|
||||
echo=False)
|
||||
|
||||
else: # run as postgres
|
||||
kw = dict(port=port, path=path, db=database)
|
||||
return c.sudo("psql {port} --file='{path}' {db}".format(**kw),
|
||||
user='postgres')
|
||||
|
||||
|
||||
def user_exists(c, name, port=None):
|
||||
"""
|
||||
Determine if a given PostgreSQL user exists.
|
||||
|
|
Loading…
Reference in a new issue