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


          
 

              




                                          

                               

                                                                       
                           


                                                                  





                                        
                                                                                    

                       
                                                                    
               
#!/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