No postgres, três bancos de dados normalmente estão presentes por padrão. Se você puder se conectar como um superusuário (por exemplo, a postgres
função), poderá se conectar aos bancos de dados postgres
ou template1
. O pg_hba.conf padrão permite que apenas o usuário Unix nomeado postgres
use a postgres
função, então a coisa mais simples é simplesmente se tornar esse usuário. De qualquer forma, crie um mecanismo como de costume com um usuário que tenha as permissões para criar um banco de dados:
>>> engine = sqlalchemy.create_engine("postgres://postgres@/postgres")
engine.execute()
No entanto, você não pode usar , porque o postgres não permite que você crie bancos de dados dentro de transações e o sqlalchemy sempre tenta executar consultas em uma transação. Para contornar isso, obtenha a conexão subjacente do mecanismo:
>>> conn = engine.connect()
Mas a conexão ainda estará dentro de uma transação, então você deve encerrar a transação aberta com commit
:
>>> conn.execute("commit")
E você pode então prosseguir para criar o banco de dados usando o comando PostgreSQL apropriado para ele.
>>> conn.execute("create database test")
>>> conn.close()