Postgre'lerde, varsayılan olarak üç veritabanı normal olarak bulunur. Süper kullanıcı olarak bağlanabiliyorsanız (örneğin, postgres
rolü), postgres
veya template1
veritabanlarına bağlanabilirsiniz. Varsayılan pg_hba.conf, postgres
rolünü kullanmak için yalnızca postgres
adlı unix kullanıcısına izin verir, böylece en basit şey sadece o kullanıcı olmaktır. postgres Eğer işlemler içindeki veritabanlarını oluşturmasına izin vermez, çünkü
>>> engine = sqlalchemy.create_engine("postgres://[email protected]/postgres")
Bununla birlikte engine.execute()
kullanamaz ve sqlalchemy daima çalışır: Her halükarda, bir veritabanı oluşturmak için gerekli izinlere sahip bir kullanıcı ile her zamanki gibi bir motoru oluşturmak Bir işlemde sorguları çalıştırmak için Bundan kaçınmak için, motordan yatan bir bağlantı olsun:
>>> conn = engine.connect()
Ama eğer bir commit
açık işlem sona zorunda bağlantı hala bir hareket içinde olacaktır:
>>> conn.execute("commit")
Ve Daha sonra veritabanı için uygun PostgreSQL komutunu kullanarak oluşturmaya devam edebilirsiniz. Ayrıca
import sqlalchemy
with sqlalchemy.create_engine(
'postgresql:///postgres',
isolation_level='AUTOCOMMIT'
).connect() as connection:
connection.execute('CREATE DATABASE my_database')
veritabanını görmezden bir yolu yoktur veritabanı var olmadığını emin değilseniz:
>>> conn.execute("create database test")
>>> conn.close()
Yeni bir veritabanı mı yoksa sadece tablo mu oluşturuyorsunuz? Aslında veritabanları oluşturan birçok ORM'ye rastlamadım. –
[this] (http://www.mail-archive.com/[email protected]/msg05520.html) –
Bulamadım: http://sqlalchemy-utils.readthedocs.org/en/latest/database_helpers .html –