pgutil to class structure

This commit is contained in:
Mikayla Dobson
2023-01-08 11:41:24 -06:00
parent b7648dc4af
commit e886742b0e
3 changed files with 66 additions and 34 deletions

63
pgutil.py Normal file
View File

@@ -0,0 +1,63 @@
import psycopg2, json
from config import Config
class PGUTIL:
def __init__(self, config_file: Config = None):
if config_file is None:
load_config = Config()
config_file = load_config.run()
pg_dsn = config_file['pg_dsn']
if pg_dsn is None:
raise Exception("Insufficient data to establish PostgreSQL connection.")
self.config_file = config_file
def create_tables(self):
pg_dsn = self.config_file['pg_dsn']
print("Connecting to PostgreSQL...")
# establish connection and create cursor
conn = psycopg2.connect(pg_dsn)
cur = conn.cursor()
# create base tables
create_label_table = """
CREATE TABLE IF NOT EXISTS label (
id INT PRIMARY KEY,
name varchar
);
"""
create_photo_table = """
CREATE TABLE IF NOT EXISTS photo (
id INT PRIMARY KEY,
path varchar,
label varchar,
matchstrength decimal,
labelid INT REFERENCES label(id)
);
"""
# attempt to insert new tables
print("Creating tables...")
try:
cur.execute(create_label_table)
cur.execute(create_photo_table)
except psycopg2.Error:
raise Exception("Problem executing database table creation")
print("Success!")
# commit changes and close connection
conn.commit()
cur.close()
conn.close()
print("Connection closed.")
def insert_data(self):
pass