Как создать пользователя postgresql с помощью ткани

Я хочу создать пользователя базы данных для моего скрипта настройки фабрики, но у createuser есть интерактивный ввод пароля, и швы не нравятся фабрике.


person user320080    schedule 19.04.2010    source источник


Ответы (3)


Просто используйте простой SQL для создания нового пользователя:

CREATE ROLE user_name WITH ENCRYPTED PASSWORD 'your password';
person Frank Heikens    schedule 19.04.2010
comment
как отправить этот SQL в postgres в одну строку? - person user320080; 19.04.2010
comment
Подключитесь к клиенту psql и отправьте запрос. postgresql.org/docs/8.4/interactive/app-psql.html< /а> - person Frank Heikens; 19.04.2010

Чтобы расширить ответ с помощью примера 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')
person robhudson    schedule 11.01.2011
comment
Опубликовать Но вы действительно имели в виду таблицу в db_table = get_table()? Похоже, вы имели в виду имя базы данных. - person Vlad T.; 22.02.2018

Это, вероятно, будет полезно без написания собственных модулей, или вы можете использовать его в качестве справочного материала.

from fabtools import require

require.postgres.create_db ???

https://fabtools.readthedocs.org/en/0.19.0/api/require/postgres.html?highlight=postgres#module-fabtools.require.postgres

person user805981    schedule 22.11.2015