postgres에서는 일반적으로 세 개의 데이터베이스가 기본적으로 존재합니다. 수퍼 유저 (예 : postgres역할)로 연결할 수있는 경우 postgres또는 template1데이터베이스에 연결할 수 있습니다 . 기본 pg_hba.conf는 이름이 지정된 유닉스 사용자 만 역할 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()