закрытие сессии в sqlalchemy - PullRequest
       2

закрытие сессии в sqlalchemy

0 голосов
/ 16 октября 2018

Я создал метод в отдельном файле Python.Всякий раз, когда мне нужно получить какие-либо данные из базы данных, я вызываю этот метод.Сейчас я делаю цикл for, где для каждой итерации выполняется метод db для метода ниже для ex-

 def get_method(self, identifier):
        sess = session.get_session()
        id = sess.query(..).filter(I.. == ..)
        return list(id)[0]


def get_session():
    engine = create_engine('postgresql+psycopg2://postgres:postgres@localhost/db', echo=True)
    Session = sessionmaker(engine)
    sess = Session()
    return sess

Я получаю FATAL: sorry, too many clients already, вероятно, потому что я не закрываю объект sess.Даже после закрытия я получаю ту же проблему.

Как мне справиться с этим.

1 Ответ

0 голосов
/ 16 октября 2018

Вы не должны открывать сессию внутри цикла for.Сделайте это до начала цикла и закройте его после завершения транзакций.Документация здесь полезна: когда открывать и закрывать сессии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...