Возникла проблема с соединением между приложением python и postgres db, работающим в docker - PullRequest
0 голосов
/ 22 января 2020

У меня возникают проблемы при попытке сделать запросы к postgres дБ, работающему в Docker.

Насколько я могу судить, база данных подключается правильно с использованием библиотеки psycopg2.

Однако, когда я выполняю команду и пытаюсь получить результаты, результаты пусты. Я могу сделать тот же запрос в командной строке, используя psql, и получаю ожидаемые результаты.

Может кто-нибудь помочь мне выяснить, что я делаю неправильно?

con = psycopg2.connect(
   host= 'localhost',
   port= '5432',
   database= 'daystarr',
   user= 'postgres',
   password= 'admin',
)

print('Connected to Postgres Database')

cur = con.cursor()
cur.execute('SELECT * FROM tickets')

rows = cur.fetchall()
for r in rows:
   print(r)

print(cur.fetchone())
cur.close()
con.close()

Вот результат при запуске в командной строке:

enter image description here

cur.fetchall() возвращает nothing и cur.fetchone() возвращает None.

Другое дело, что при попытке выполнить команду CREATE TABLE tickets (ticket_id INT PRIMARY KEY;)

enter image description here

я получаю ошибку дублирующейся таблицы. Так что это должно быть подключение к столу. Заранее спасибо!

Вот как это выглядит, когда я просто print(cur.fetchall()):

enter image description here

Ответы [ 2 ]

1 голос
/ 23 января 2020

Хорошо, это странный крайний случай, но если вы посмотрите на это в будущем, я обнаружил, в чем проблема. У меня была установлена ​​версия PostgreSQL, и я, очевидно, слушал порт 5432. Мой контейнер docker также выставлял этот порт. Так что в основном мое приложение должно было иметь приоритет на моей локальной машине. Я удалил PostgreSQL с локального компьютера, и он сразу обнаружил контейнер Docker. Спасибо за всех, кто помог.

0 голосов
/ 23 января 2020

Вам не хватает ; в вашем запросе, оно должно быть

cur.execute("SELECT * FROM tickets;")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...