рамках одной транзакции записываю в 3 разные таблицы.
Там и апдейты и интсерты.
Так вот локально у себя запускаю, все работает как часы. Пробовал на разных БД. Одна на домашнем сервере, другая локально на машине в докере. Обе развернуты без каких либо доп настроек.
Выкладываю на корпоративный сервер разработки и там наблюдаю, что в одну из этих 3-х таблицы данные могут не вставится. Закономерности никакой. Иногда вставляются, а иногда нет, чаще не вставляются. Ошибок никаких нет. Включаю трассировку запросов в приложении и там запрос на вставку есть.
Ни у кого нет никаких идей как это может быть вообще? Это наверняка какие-то настройки БД, но вот какие?
Покажите (посмотрите) логи PostgreSQL (включите log_statement=all временно или только для тестового пользователя), посмотрите \d+ таблиц (вдруг там есть триггер, который Вам "помогает" или что-то подобное) — зачем гадать?
Просто прямого доступа к БД нет, только через админов. Триггера там точно нет, поскольку всю схему создавал сам. Просто думал, что есть какое-то решение на поверхности.
По крайней мере, это не какие-то настройки БД.
Логи постгрес надо смотреть может тайм-аут маленький стоит и запись не проходит
Но тогда ошибка должна быть. А тут в одну таблицу в рамках транзакции записи нет
Ищите другую таблицу в search_path, можэт в неё проходит. Или триггеры, да. Нет, само по себе такое не бывает в общем. Но да, кстати, посравнивайте коды возврата -- количество обновлённых/вставленных строк, возможно, там будет какой-то сюрприз.
А как вы проверяете что не вставляются?
select * from … В api приложения есть интерфейс к этой таблице
Вы в своей транзакции сделайте это и в лог запишите
Вот как советуют коллеги
Лог пишу в консоль и внутри транзакции данные есть 🫤 Полный бред…
Там insert, а потом select по этому id
А то я не доверяю api😂
Обсуждают сегодня