如何使用fabric创建postgresql用户

时间:2010-04-19 07:18:22

标签: postgresql fabric

我想为我的设置结构脚本创建一个数据库用户,但是createuser输入了交互式密码,并且接缝不喜欢结构。

3 个答案:

答案 0 :(得分:34)

使用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')

答案 1 :(得分:8)

只需使用纯SQL创建新用户:

CREATE ROLE user_name WITH ENCRYPTED PASSWORD 'your password';

答案 2 :(得分: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