Задать вопрос
@gkozyrev

Ошибка psycopg2.OperationalError?

Помогите пожалуйста!

Бьюсь над ошибкой уже несколько часов, не могу воспроизвести и понять из-за чего происходит.
Библиотека Peewee (надстройка на psycopg). Ранее все нормально работало, пока не решил добавить новый столбик в бд (в модели так же его объявил), теперь примерно через 40 минут после запуска (и успешной работы) вылетает следующая ошибка и повторяется при каждой попытке обращения к БД:

psycopg2.OperationalError: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.


На этом же сервере PostgreSQL (11) крутятся другие бд других сервисов, но проблемы не наблюдается.
  • Вопрос задан
  • 6957 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@gkozyrev Автор вопроса
Итак, я исправил эту проблему, поделюсь решением на случай если кто-то столкнется с ней.
Добавил инициализацию подключения перед каждым запросом и его закрытие после выполнения запроса.

db.connect()
db.
.
db.close()

Скорее всего это не единственное решение, а мое вообще является костылем, но другого я не нашел. Если вы найдете другое решение - можете написать его сюда))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tumbler
@tumbler Куратор тега Python
бекенд-разработчик на python
Похоже на то, что сервер закрывает соединение из-за неактивности, а клиент его потом не переоткрывает. В Django доках можно почитать про persistent database connections, как это обычно реализовывается. Наверняка в Peewee тоже что-то похожее есть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы