@Gytim

Py-postgres postgresql10 ошибка?

Я новичек в python
Стоит ubuntu 18.04 postgresql 10

пишу API по соединению с базой
ругается вот так:
spoiler
File "/home/mypc/PycharmProjects/API/main.py", line 222, in get_item
with db_conn() as db:
File "/home/mypc/PycharmProjects/API/main.py", line 35, in db_conn
return postgresql.open('pq://postgres:passandword@localhost:5432/base')
File "/home/mypc/.local/lib/python3.6/site-packages/postgresql/__init__.py", line 94, in open
c.connect()
File "/home/mypc/.local/lib/python3.6/site-packages/postgresql/driver/pq3.py", line 2427, in connect
self._establish()
File "/home/mypc/.local/lib/python3.6/site-packages/postgresql/driver/pq3.py", line 2559, in _establish
self.version_info = pg_version.normalize(pg_version.split(sv))
File "/home/mypc/.local/lib/python3.6/site-packages/postgresql/versionstring.py", line 28, in split
vlist = [int(x or '0') for x in v[:-1]]
File "/home/mypc/.local/lib/python3.6/site-packages/postgresql/versionstring.py", line 28, in
vlist = [int(x or '0') for x in v[:-1]]
ValueError: invalid literal for int() with base 10: '4 (Ubuntu 10'


причем это работало на Ubuntu 16.04 postgresql 9.5
Куда копать?
  • Вопрос задан
  • 330 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Ошибка в используемой библиотеке. Так запрашивать версию базы нельзя.

Ломается именно на 10 очевидно из-за смены политики нумерации, до 10 было x.y.z, где x.y - major версия, начиная с десятки релизы нумеруются x.y, где major версия только первая цифра. Глупый код пытающийся распарсить номер находит не то что ожидает.

Вероятно, полтора года спустя с релиза postgresql 10.0, библиотеку уже исправили. Хотелось бы надеяться что на использование специально для этого предназначенной current_setting('server_version_num'), а не опять костылём вокруг не предназначенной для того version()
Копать соответственно в сторону обновления версии библиотеки. Если никак - откатываться на postgresql 9.6.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект
22 нояб. 2024, в 21:44
50000 руб./за проект