Trên mặt sau, ba cơ sở dữ liệu thường được hiển thị theo mặc định. Nếu bạn có thể kết nối với tư cách là siêu người dùng (ví dụ: vai trò postgres
), thì bạn có thể kết nối với cơ sở dữ liệu postgres
hoặc template1
. Pg_hba.conf mặc định chỉ cho phép người dùng Unix có tên postgres
sử dụng vai trò postgres
, vì vậy điều đơn giản nhất là chỉ trở thành người dùng đó. Dù sao đi nữa, tạo ra một động cơ như bình thường với một người dùng nào có quyền truy cập để tạo ra một cơ sở dữ liệu:
>>> engine = sqlalchemy.create_engine("postgres://[email protected]/postgres")
Bạn không thể sử dụng engine.execute()
Tuy nhiên, bởi vì postgres không cho phép bạn tạo ra các cơ sở dữ liệu bên trong các giao dịch, và SQLAlchemy luôn cố gắng để chạy truy vấn trong một giao dịch. Để làm được việc này, có được kết nối tiềm ẩn từ động cơ:
>>> conn = engine.connect()
Nhưng kết nối vẫn sẽ được bên trong một giao dịch, vì vậy bạn phải kết thúc giao dịch mở với một commit
:
>>> conn.execute("commit")
Và sau đó bạn có thể tiến hành tạo cơ sở dữ liệu bằng cách sử dụng lệnh PostgreSQL thích hợp cho nó.
>>> conn.execute("create database test")
>>> conn.close()
Tạo cơ sở dữ liệu mới hoặc chỉ bảng? Tôi đã không gặp nhiều ORM mà thực sự tạo ra cơ sở dữ liệu. –
Tôi đã tìm thấy [this] (http://www.mail-archive.com/[email protected]/msg05520.html) –
Có ích: http://sqlalchemy-utils.readthedocs.org/en/latest/database_helpers .html –