18

セットアップファブリックスクリプト用のデータベースユーザーを作成したいのですが、createuserにはインタラクティブなパスワード入力があり、ファブリックが気に入らないようになっています。

4

3 に答える 3

35

ファブリックの例で答えを拡張するには...

# 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')
于 2011-01-11T20:38:40.427 に答える
8

プレーンSQLを使用して新しいユーザーを作成するだけです。

CREATE ROLE user_name WITH ENCRYPTED PASSWORD 'your password';
于 2010-04-19T11:36:14.467 に答える
1

これは、独自のモジュールを作成しなくても役立つ可能性があります。または、参照として使用することもできます。

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

于 2015-11-22T09:06:47.233 に答える