pgutil to class structure
This commit is contained in:
63
pgutil.py
Normal file
63
pgutil.py
Normal 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
|
||||
Reference in New Issue
Block a user