Как я понял, прежде чем начать использовать SQLAlchemy в своём проекте, нужно разобраться с этой стаей товарищей:
- Engine
- Connection
- Transaction
- SessionMaker
- Session
- SessionTransaction
Как я со скрипом понял, первые три относятся к core-слою, и предполагают просто работу с БД, без ORM. Вторые три специфичны для ORM.
Но остаются открытым несколько связанных вопросов:
- Какое время жизни у этих объектов?
- Если несколько компонентов программы требуют доступ к общей БД, какие компоненты имеет смысл разделять между ними, а какие - лучше создавать "по месту"?
- На каком уровне лучше объявлять транзакцию, на уровне соединения или на уровне сессии?
Что вообще происходит, чёрт побери?
Документация многословна, но малополезна, так как описывает эти классы в отдельности. Есть ли что-то более толковое почитать?