2009-12-17 2 views
1

Что бы эквивалент этого в PostgreSQLткань 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, не застревая на ввод пароля.

ответ

0

PSQL читает ~/.pgpass

Вы можете также использовать методы аутентификации без пароля на основе. Проконсультируйтесь с PostgreSQL's documentation.

5

Вот как я это делаю: -

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)) 
+0

Вы бы использовать «с зашифрованными ПАРОЛЬ», а? – benregn