Refactor DB classes and management #5
@@ -1,8 +1,9 @@
|
|||||||
import os
|
import os
|
||||||
import psycopg2
|
import psycopg2
|
||||||
import pandas as pd
|
|
||||||
from psycopg2.extras import RealDictCursor
|
from psycopg2.extras import RealDictCursor
|
||||||
from psycopg2.extras import execute_batch, Json
|
from psycopg2.extras import execute_batch
|
||||||
|
|
||||||
|
from server.exceptions import DatabaseNotConfiguredException
|
||||||
|
|
||||||
|
|
||||||
class PostgresConnector:
|
class PostgresConnector:
|
||||||
@@ -11,13 +12,18 @@ class PostgresConnector:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.connection = psycopg2.connect(
|
|
||||||
host=os.getenv("POSTGRES_HOST", "localhost"),
|
try:
|
||||||
port=os.getenv("POSTGRES_PORT", 5432),
|
self.connection = psycopg2.connect(
|
||||||
user=os.getenv("POSTGRES_USER", "postgres"),
|
host=os.getenv("POSTGRES_HOST", "localhost"),
|
||||||
password=os.getenv("POSTGRES_PASSWORD", "postgres"),
|
port=os.getenv("POSTGRES_PORT", 5432),
|
||||||
database=os.getenv("POSTGRES_DB", "postgres"),
|
user=os.getenv("POSTGRES_USER", "postgres"),
|
||||||
)
|
password=os.getenv("POSTGRES_PASSWORD", "postgres"),
|
||||||
|
database=os.getenv("POSTGRES_DB", "postgres"),
|
||||||
|
)
|
||||||
|
except psycopg2.OperationalError as e:
|
||||||
|
raise DatabaseNotConfiguredException(f"Ensure database is up and running: {e}")
|
||||||
|
|
||||||
self.connection.autocommit = False
|
self.connection.autocommit = False
|
||||||
|
|
||||||
def execute(self, query, params=None, fetch=False) -> list:
|
def execute(self, query, params=None, fetch=False) -> list:
|
||||||
|
|||||||
@@ -2,4 +2,7 @@ class NotAuthorisedException(Exception):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
class NotExistentDatasetException(Exception):
|
class NotExistentDatasetException(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class DatabaseNotConfiguredException(Exception):
|
||||||
pass
|
pass
|
||||||
Reference in New Issue
Block a user