Refactor ToolBase to allow tool composition. Add TableSync tool (composited). Move more tools under pgtool.
#!/usr/bin/env python3
#
# Call "NOTIFY notifyexample" on target DB to wake up this program.
#
from pgtoolkit import toolbase, pgmanager
class NotifyExample(toolbase.SimpleTool):
def __init__(self):
toolbase.SimpleTool.__init__(self, name='notifyexample', desc='Sample program for listen/notify.')
self.init()
def main(self):
# create another connection for notifies, copy parameters from connection 'target'
self.pgm.create_conn_listen('target_listen', channel='notifyexample', copy_dsn='target')
while True:
ev = self.pgm.wait_for_notify('target_listen', timeout=None)
if ev:
print(ev)
tool = NotifyExample()
tool.main()