Мне нужно было бы получать автоматические c уведомления об изменениях в указанной таблице c в postgreSQL с использованием python. Я не знаю, что такое название канала, и где я могу найти его на pgAdmin.
Предполагая, что мне нужно прослушать таблицу с именем table_1 и получать уведомления об изменениях. Что я должен сделать?
Вот код, который я нашел в Интернете ..
import select
import psycopg2
import psycopg2.extensions
DB_NAME = "postgres"
DB_USER = "postgres"
DB_PASS = "pw"
DB_HOST = "localhost"
DB_PORT = "5432"
conn = psycopg2.connect(database=DB_NAME, user=DB_USER, password=DB_PASS, host=DB_HOST, port=DB_PORT)
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
curs = conn.cursor()
curs.execute("LISTEN test;")
print "Waiting for notifications on channel 'test'"
while True:
if select.select([conn],[],[],5) == ([],[],[]):
print "Timeout"
else:
conn.poll()
while conn.notifies:
notify = conn.notifies.pop(0)
print "Got NOTIFY:", notify.pid, notify.channel, notify.payload