Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --On Master
- CREATE TABLE test (id SERIAL PRIMARY KEY, msg TEXT NOT NULL);
- CREATE PUBLICATION testpub FOR TABLE test
- --On Replica
- CREATE TABLE test (id SERIAL PRIMARY KEY, msg TEXT NOT NULL);
- CREATE SUBSCRIPTION testsub CONNECTION 'host=<host> user=<user> password=<test>' PUBLICATION testpub;
- CREATE OR REPLACE FUNCTION notify_channel() RETURNS trigger AS $$
- BEGIN
- RAISE LOG 'Notify Triggered';
- PERFORM pg_notify('testchannel', 'Testing');
- RETURN NEW;
- END;
- $$ LANGUAGE 'plpgsql';
- DROP TRIGGER queue_insert ON TEST;
- CREATE TRIGGER queue_insert AFTER INSERT ON test FOR EACH ROW EXECUTE PROCEDURE notify_channel();
- ALTER TABLE test ENABLE ALWAYS TRIGGER queue_insert;
- LISTEN testchannel;
- --Execute insert on master:
- INSERT INTO test (msg) VALUES ('test');
- --Log from replica from postgresql-10-main.log:
- --2018-07-24 07:45:15.705 EDT [6701] LOG: 00000: Notify Triggered
- --2018-07-24 07:45:15.705 EDT [6701] CONTEXT: PL/pgSQL function notify_channel() line 3 at RAISE
- --2018-07-24 07:45:15.705 EDT [6701] LOCATION: exec_stmt_raise, pl_exec.c:3337
Add Comment
Please, Sign In to add comment