Я разрабатываю приложение вместе с партнером.Я делаю часть базы данных ( PostgreSQL ), мой партнер реализует приложение на веб-сервере с помощью Python, используя SQLAlchemy .Мы интенсивно используем хранимые процедуры.Запрос SELECT
для одного из них в журнале базы данных выглядит следующим образом:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
SELECT col_a, col_b FROM f_stored_proc(E'myvalue');
ROLLBACK;
В хранимых процедурах я записываю определенные данные в таблицу журнала.Приложение запрашивает SELECT
, SQLAlchemy видит только инструкцию SELECT и настаивает на ROLLBACK
.Регистрация не удается.Мне нужно это COMMIT
вместо этого.Мой партнер утверждает, что нет простого пути, нам бы пришлось полностью удалить SQLAlchemy.Я думаю, что он, должно быть, ошибается, но ему не хватает знания, чтобы утверждать обратное.
Есть ли простой способ сделать SQLAlchemy COMMIT
вместо ROLLBACK
?
Что мешает мне просто выполнить trans.commit()
?Мне нужно установить autoflush=False
для этого?
Я отсканировал FAQ , но не нашел там ответа.
Поиск SO выявил некоторые связанные вопросы, такие как здесь и здесь , но я не в курсе.
Может быть, этот рецепт будет работать?