postgresでは、デフォルトで3つのデータベースが通常存在します。スーパーユーザー(たとえばpostgres
ロール)として接続できる場合は、postgres
またはtemplate1
データベースに接続できます。デフォルトのpg_hba.confは、postgres
という名前のUNIXユーザーのみがpostgres
ロールを使用することを許可しているので、最も単純なのはそのユーザーになることです。 Postgresはあなたが取引の内部データベースを作成することはできませんので、
>>> engine = sqlalchemy.create_engine("postgres://[email protected]/postgres")
あなたはしかしengine.execute()
を使用することはできません、とSQLAlchemyのは常にしようとします:任意のレートでは、データベースを作成する権限を持つユーザーでいつものようにエンジンを作成トランザクション内でクエリを実行します。これを回避するには、エンジンからの基になる接続を取得:
>>> conn = engine.connect()
をしかし、あなたはcommit
とのオープン・トランザクション終了する必要がありますので接続が、トランザクションの内部で次のようになります。
>>> conn.execute("commit")
をと適切なPostgreSQLコマンドを使用してデータベースを作成することができます。 isolation_level='AUTOCOMMIT'
create_engine
する機能を提供することで、データベースを作成中
>>> conn.execute("create database test")
>>> conn.close()
新しいデータベースまたはテーブルだけを作成しますか?私は実際にデータベースを作成する多くのORMに遭遇していません。 –
私は[この](http://www.mail-archive.com/[email protected]/msg05520.html)を見つけました –
役に立つ:http://sqlalchemy-utils.readthedocs.org/en/latest/database_helpers .html –