Я хочу создать пользователя базы данных для моей установочной материи script, но createuser имеет интерактивный ввод пароля и швы, не похожие на ткань.
Как создать пользователя postgresql с тканью
Ответ 1
Просто используйте простой SQL для создания нового пользователя:
CREATE ROLE user_name WITH ENCRYPTED PASSWORD 'your password';
Ответ 2
Чтобы продлить ответ с помощью примера Fabric...
# In fabfile.py
def create_database():
"""Creates role and database"""
db_user = get_user() # define these
db_pass = get_pass()
db_table = get_table()
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_table, db_user), user='postgres')
Ответ 3
Это, вероятно, полезно, без необходимости писать свои собственные модули, или вы можете использовать его в качестве ссылки.
from fabtools import require
require.postgres.create_db ???