aboutsummaryrefslogblamecommitdiffstats
path: root/scripts/common/postgres.py
blob: efa4b5a503c05e434a84bbdf497053ced7d04bb0 (plain) (tree)
1
2
3
4
5
6




                                  
 




















                                                                                             
                                                                    
               
#!/usr/bin/env python3
''' common functions and stuff '''

import os
import sys

import psycopg

pg_db = os.environ['el_pg_db']
pg_host = os.environ['el_pg_host']
pg_user = os.environ.get('el_pg_user','')
pg_pass = os.environ.get('el_pg_pass','')

def dbi(sql, values, **kwargs):
    ''' insert into db '''
    verbose = bool(kwargs['verbose']) if 'verbose' in kwargs else False
    # pylint: disable=E1129
    with psycopg.connect(dbname=pg_db, host=pg_host, user=pg_user, password=pg_pass) as conn:
        cur = conn.cursor()
        if isinstance(values, list):
            cur.executemany(sql, values)
        elif isinstance(values, tuple):
            cur.execute(sql, values)
        else:
            print('`values` is a', type(values), 'but it needs to be tuple or list')
            sys.exit(1)
    if verbose is True:
        print("Inserted and/or changed", cur.rowcount, "rows in db")
    return True