在postgres上,通常默认情况下存在三个数据库。如果您能够以超级用户身份(例如,
postgres角色)进行连接,则可以连接到
postgres或
template1数据库。默认的pg_hba.conf只允许名为unix的用户
postgres使用该
postgres角色,因此最简单的方法就是成为该用户。无论如何,使用有权创建数据库的用户照常创建引擎:
>>> engine = sqlalchemy.create_engine("postgres://postgres@/postgres")
engine.execute()但是,您不能使用,因为postgres不允许您在事务内部创建数据库,而sqlalchemy始终尝试在事务中运行查询。要解决此问题,请从引擎获取基础连接:
>>> conn = engine.connect()
但是连接仍将在事务内部,因此您必须使用以下命令结束打开的事务
commit:
>>> conn.execute("commit")
然后,您可以使用适当的PostgreSQL命令继续创建数据库。
>>> conn.execute("create database test")>>> conn.close()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)