Никак не могу разобраться и победить ошибку.
Делаю несколько процессов, в каждом - работа с БД. На оффтопике работает нормально, а после деплоя на дебиан 8 имею ошибки.
Вот так организованы коннекты:
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session
from sqlalchemy.orm.session import sessionmaker
from Settings import dbSettings as settings
engine = create_engine('%s://%s:%s@%s:%s/%s' % (
settings['protocol'],
settings['user'],
settings['password'],
settings['host'],
settings['port'],
settings['database']))
session_factory = sessionmaker(bind=engine)
Session = scoped_session(session_factory)
class Connection(object):
@staticmethod
def getSession():
return Session()
@staticmethod
def getEngine():
return engine
@staticmethod
def remove():
return
s = Connection.getSession()
s.close()
Session.remove()
@staticmethod
def dispose():
s = Connection.getSession()
s.close()
Session.remove()
engine.dispose()
Т.е. я по коду просто получаю сессию к БД и работаю:
from Connection import Connection
# ...
s = Connection.getSession()
s.query(...).all()
Ошибки лезут типа таких:
Process PaymentsEnrolmentWorker-6:
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
context)
File "/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
context)
File "/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/default.py", line 470, in do_execute
cursor.execute(statement, parameters)
psycopg2.OperationalError: SSL error: decryption failed or bad record mac
Гуглил, кто-то пишет, что нужно обязательно remove() делать, кто-то упоминает про dispose()... мне это не помогло, либо я не так делаю.