Каков наилучший вариант использования sqlalchemy для выполнения сложных запросов в проекте Django?Я нашел спокойной, но это не похоже на проект с большим количеством пользователей ... Любые предложения?
Причина: у меня есть 30-40 RawQueries на проект, и обслуживание этих запросов является болезненным ... Я думаю, что SQLAlchemyможет обеспечить гораздо лучший опыт в этом случае.
ОБНОВЛЕНИЕ.
Основная цель, которую нужно достичь, - написать один большой сложный запрос один раз и уточнить его позже, когда мне потребуется:
q = get_big_complex_sqlalachemy_query()
mine = q.filter_by(table.c.created_by_id=1)
closed = q.filter_by(table.c.is_closed=True)
Самая большая проблема с Django и SQLAlchemy - управление транзакциями.Если вы используете большие транзакции (одна транзакция на запрос), SQLAlchemy не увидит никаких изменений, пока вы их не зафиксируете (счастливая отладка :).Поэтому я написал собственный пул соединений для SQLAlchemy, чтобы использовать соединение Django.Это тоже не идеально (сейчас есть проблемы в тестах, потому что SQLAlchemy любит оборачивать каждый выбор в транзакции, а я до сих пор не знаю, как это отключить), но выглядит лучше.