@AlmazKayum

Почему перестали работать postgres запрос в Python?

Здравствуйте.
Использую подключение к Postgresql 11 через psycopg2.

Раньше код прекрасно работал
def get_switch(self):
        with self.conn:
            self.cursor.execute('SELECT switch FROM switches WHERE id=7')
            return self.cursor.fetchone()[0]    

def change_switch(self):
        with self.conn:
            switch = self.get_switch()
            self.cursor.execute('UPDATE switches SET switch=%s WHERE id=7', (not switch,))
            self.conn.commit()


теперь выдает ошибку
in get_switch
with self.conn:
psycopg2.ProgrammingError: the connection cannot be re-entered recursively


Я так понимаю он ругается, что два раза with self.conn: используется.
Почему раньше абсолютно те же строки хорошо работали?
И не работает теперь?
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 1
@o5a
Ругается именно на то, что внутри одного with conn запустили еще один with conn. Проверьте свой код.
Судя по документации и гуглящимся отзывам эту ошибку стали выдавать с версии 2.9, так что возможно раньше просто запускали на более старой версии, поэтому не встречали.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы