У меня была проблема, в моем приложении написанном на flask, было подключение к БД и все работало корректно, но я потерял доступ к таблице задавая sql запросы через python или через pgadmin, т.е ошибок никаких не выдавало, а была просто бесконечная загрузка(при любых запросах).
Выполняя запрос "select * from pg_stat_activity;" я увидел что некоторые сессии висят в состоянии idle in transaction.
Далее я решил выполнить такой запрос
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'dbname'
AND pid <> pg_backend_pid()
AND state = 'idle in transaction'
AND state_change < current_timestamp - INTERVAL '5' MINUTE;
Теперь я могу выполнять запросы из pgadmin/python и в целом подключаться к данной таблице, но при открытии моего приложения появилась такая ошибка.
psycopg2.InterfaceError: connection already closed
Traceback (most recent call last)
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 2213, in __call__
return self.wsgi_app(environ, start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 2193, in wsgi_app
response = self.handle_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1484, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1469, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/T2app/./app.py", line 27, in index
cur = conn.cursor()
^^^^^^^^^^^^^
psycopg2.InterfaceError: connection already closed
Подскажите, пожалуйста, как мне исправить это?