create - ¿Cómo creo un usuario postgresql con tela?
postgresql convert user to superuser (3)
Quiero crear un usuario de base de datos para mi script de instalación de tejido, pero createuser tiene una entrada de contraseña interactiva y parece que no me gusta el tejido.
Para extender la respuesta con un ejemplo de Fabric ...
# 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'')
Probablemente sea de alguna utilidad sin tener que escribir sus propios módulos o podría usarlo como referencia.
from fabtools import require
require.postgres.create_db ???
Simplemente use SQL simple para crear un nuevo usuario:
CREATE ROLE user_name WITH ENCRYPTED PASSWORD ''your password'';