Как создать пользователя postgresql с тканью - PullRequest
18 голосов
/ 19 апреля 2010

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

Ответы [ 3 ]

34 голосов
/ 11 января 2011

Чтобы расширить ответ на примере 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')
8 голосов
/ 19 апреля 2010

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

CREATE ROLE user_name WITH ENCRYPTED PASSWORD 'your password';
1 голос
/ 22 ноября 2015

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

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

...