Pada postgres, tiga database biasanya hadir secara default. Jika Anda dapat terhubung sebagai pengguna super (misalnya, postgres
peran), maka Anda dapat terhubung ke database postgres
atau template1
. Default pg_hba.conf hanya mengizinkan pengguna unix yang diberi nama postgres
untuk menggunakan postgres
peran tersebut, jadi hal yang paling sederhana adalah menjadi pengguna tersebut. Bagaimanapun, buat mesin seperti biasa dengan pengguna yang memiliki izin untuk membuat database:
>>> engine = sqlalchemy.create_engine("postgres://postgres@/postgres")
engine.execute()
Namun, Anda tidak dapat menggunakan , karena postgres tidak mengizinkan Anda membuat database di dalam transaksi, dan sqlalchemy selalu mencoba menjalankan kueri dalam transaksi. Untuk menyiasati ini, dapatkan koneksi yang mendasari dari mesin:
>>> conn = engine.connect()
Tetapi koneksi tersebut masih ada di dalam transaksi, jadi Anda harus mengakhiri transaksi terbuka dengan commit
:
>>> conn.execute("commit")
Dan Anda kemudian dapat melanjutkan untuk membuat database menggunakan perintah PostgreSQL yang tepat untuknya.
>>> conn.execute("create database test")
>>> conn.close()