fabric postgresql创建数据库

时间:2009-12-17 06:35:08

标签: postgresql fabric

在postgresql

中等同于此
run('echo "CREATE DATABASE %s;"|mysql --batch --user=%s --password=%s --host=%s' % (dataname, env.mysqluser, env.mysqlpassword, env.mysqlhost), pty=True)

以上工作对于创建mysql数据库很好,但是如何在postgresql中创建一个而不会卡在密码提示符下。

3 个答案:

答案 0 :(得分:6)

我是这样做的: -

run('psql -U postgres -c "CREATE ROLE {0} WITH PASSWORD \'{1}\' NOSUPERUSER CREATEDB NOCREATEROLE LOGIN;"'.format(env.psql_user, env.psql_password))
run('psql -U postgres -c "CREATE DATABASE {0} WITH OWNER={1} TEMPLATE=template0 ENCODING=\'utf-8\';"'.format(env.psql_db, env.psql_user))

答案 1 :(得分:2)

你可以:

选择最适合您的方式。我可能会选择.pgpass。

答案 2 :(得分:0)

psql读取~/.pgpass

您还可以使用基于非密码的身份验证方法。有关详情,请参阅PostgreSQL's documentation