--- a/pgtoolkit/tools/tablesync.py Mon May 26 18:18:21 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-from pgtoolkit.toolbase import SrcDstTool
-from pgtoolkit.tools.tablediff import TableDiffTool
-from pgtoolkit.tools.runquery import RunQueryTool
-
-
-class TableSyncTool(SrcDstTool):
-
- """
- Synchronize tables between two databases (tablediff + runquery).
-
- This will essentially call following commands on each table from list:
- * pgtool tablediff <source> <target> -r -s <schema> -t <table> --sql -o /tmp/diff.sql
- * pgtool runquery <target> -f /tmp/diff.sql
-
- """
-
- def __init__(self):
- SrcDstTool.__init__(self, name='tablesync', force_reverse=True)
- self.tablediff = TableDiffTool()
- self.tablediff.specify_args()
- self.runquery = RunQueryTool()
- self.runquery.specify_args()
-
- def specify_args(self):
- SrcDstTool.specify_args(self)
- self.parser.add_argument('-t', dest='tables', metavar='table', nargs='*',
- help="Tables to be synchronized.")
- self.parser.add_argument('-s', '--schema', metavar='default_schema',
- dest='schema', type=str, default='public', help='Default schema name.')
-
- def init_logging(self):
- SrcDstTool.init_logging(self)
- self.runquery.log = self.log
-
- def setup(self, args=None):
- SrcDstTool.setup(self, args)
- self.target_isolation_level = 'autocommit'
- self.prepare_conns(target=self.args.src)
-
- def main(self):
- for table in self.args.tables:
- self.sync(table)
-
- def sync(self, table):
- if '.' in table:
- schema, table = table.split('.', 1)
- else:
- schema = self.args.schema
- # Call tablediff
- self.tablediff.load_args([self.args.src, self.args.dst,
- '-r', '-s', schema, '-t', table, '--sql', '-o', '/tmp/diff.sql'])
- self.tablediff.main()
- # Call runquery
- self.runquery.load_args([self.args.src, '--one-query-per-line',
- '-f', '/tmp/diff.sql'])
- self.runquery.main()
-
-
-cls = TableSyncTool
-