55 lines
1.2 KiB
Python
55 lines
1.2 KiB
Python
|
#!/usr/bin/env python3
|
||
|
"""
|
||
|
libinv
|
||
|
|
||
|
Library for interacting with inventory database.
|
||
|
"""
|
||
|
|
||
|
# Imports
|
||
|
import psycopg2
|
||
|
from configparser import ConfigParser
|
||
|
|
||
|
def config(filename="postgres.ini", section="postgresql"):
|
||
|
parser = ConfigParser()
|
||
|
parser.read(filename)
|
||
|
|
||
|
db = {}
|
||
|
if parser.has_section(section):
|
||
|
params = parser.items(section)
|
||
|
for param in params:
|
||
|
db[param[0]] = param[1]
|
||
|
else:
|
||
|
raise Exception('Section {0} not found in the {1} file'.format(section, filename))
|
||
|
|
||
|
return db
|
||
|
|
||
|
|
||
|
def connect():
|
||
|
""" Connect to the PostgreSQL database server """
|
||
|
conn = None
|
||
|
try:
|
||
|
params = config()
|
||
|
|
||
|
print("Connecting to the PostgreSQL database...")
|
||
|
conn = psycopg2.connect(**params)
|
||
|
|
||
|
cur = conn.cursor()
|
||
|
|
||
|
# execute a statement
|
||
|
print("Postgres version:")
|
||
|
cur.execute("SELECT version()")
|
||
|
|
||
|
# display the database version
|
||
|
db_version = cur.fetchone()
|
||
|
print(db_version)
|
||
|
except (Exception, psycopg2.DatabaseError) as e:
|
||
|
print(e)
|
||
|
finally:
|
||
|
if conn is not None:
|
||
|
conn.close()
|
||
|
print("Database connection closed.")
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
connect()
|