Desidero creare un utente del database per il mio script di installazione del fabric ma createuser ha l'immissione della password interattiva e cuciture che non gradiscono il fabric.Come creare un utente postgresql con fabric
18
A
risposta
8
Basta utilizzare SQL semplice per creare un nuovo utente:
CREATE ROLE user_name WITH ENCRYPTED PASSWORD 'your password';
33
Per estendere la risposta con un esempio in tessuto ...
# In fabfile.py
def create_database():
"""Creates role and database"""
db_user = get_user() # define these
db_pass = get_pass()
db_name = get_db_name()
sudo('psql -c "CREATE USER %s WITH NOCREATEDB NOCREATEUSER " \
"ENCRYPTED PASSWORD E\'%s\'"' % (db_user, db_pass), user='postgres')
sudo('psql -c "CREATE DATABASE %s WITH OWNER %s"' % (
db_name, db_user), user='postgres')
+0
Impressionante, molte grazie –
+1
Upwote. Ma in realtà intendevi la tabella in 'db_table = get_table()'? Sembra che tu intenda un nome di database. –
0
Questo è probabilmente di qualche utilità, senza dover scrivere il possedere moduli o potresti usarlo come riferimento.
from fabtools import require
require.postgres.create_db ???
Come posso inviare questo SQL a Postgres in una battuta? – user320080
Connettersi con il client psql e inviare la query. http://www.postgresql.org/docs/8.4/interactive/app-psql.html –