runquery.py
changeset 90 43e5d2cf4ddb
parent 86 b61b54aa9f96
child 91 fba99a54ec49
--- a/runquery.py	Fri Oct 04 16:37:29 2013 +0200
+++ b/runquery.py	Fri Oct 04 16:38:24 2013 +0200
@@ -19,6 +19,7 @@
         self.parser.add_argument('target', nargs='?', metavar='target', type=str, help='Target database')
         self.parser.add_argument('-c', dest='config', type=str, help='Additional config file (besides pgtoolkit.conf).')
         self.parser.add_argument('-q', dest='queries', metavar='QUERY', nargs='*', help='Queries to run.')
+        self.parser.add_argument('-f', dest='file', metavar='FILE', help='Read query from file.')
 
         self.config.add_option('target', type=str, default=None)
         self.config.add_option('queries', type=list, default=[])
@@ -33,6 +34,11 @@
         if self.args.config:
             self.config.load(self.args.config)
         self.queries = self.args.queries or self.config.queries
+        # read query from file
+        if self.args.file:
+            with open(self.args.file, 'r', encoding='utf8') as f:
+                data = f.read()
+                self.queries.insert(0, data)
         if self.config.log_path:
             self.init_file_logs(self.config.log_path)
         self.prepare_conns(target = self.args.target or self.config.target)
@@ -53,7 +59,7 @@
     def main(self):
         """Execute the queries."""
         for q in self.queries:
-            self.log.info('%s', q)
+            self.log.info('%s', q if len(q) < 100 else q[:100]+'...')
             with self.pgm.cursor('target') as curs:
                 rows = curs.execute(q)
                 self.log.info('Rows affected: %d', curs.rowcount)