попытался развернуть свой проект и столкнулся с проблемой приведения типов в postgres. То есть, раньше, когда я делал WHERE по столбцу у которого тип данных TEXT, при этом вводя целочисленное число, всё было нормально, сейчас же вызывается ошибка:
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
Вопрос. Это проблема версии? Здесь у меня устанавливается из репозиториев только 12, как последняя. Чтобы исправить, и при этом не переписывая код, мне есть смысл переходить на 14? В какой версии этой ошибки не вызывается?
позвольте спросить, какая версия раньше была? ибо приведение типов ужесточили я уж даже не помню как давно…
В том то и дело, без понятия, может 11, а может и 14, не меньше 11 точно
Нет, никаких изменений в этом поведении аж с 8 где-то я не припомню. Приведите запрос — поскольку, вероятно, причина ошыбки описана некорректно.
И типы столбцов тожэ приводите.
psycopg2.errors.UndefinedFunction: operator does not exist: text = integer LINE 1: SELECT * FROM clients WHERE user_id = 1344493803 user_id является TEXT
а как запрос передаётся базе? это просто текст, или же используются bind-параметры?
cursor.execute(f'SELECT * FROM clients WHERE user_id = %s', (user_id,)) Python строчка в которой происходит запрос базе
Хм. В 14 и 11 такжэ, так что смена версий вам не поможэт. Выясняйте, как работало раньшэ. Возможно, был прописан этот оператор (это несложно). Но в таком случае — там, возможно, было в базе много чего ещё, что вы тожэ потеряли при переезде.
Обсуждают сегодня