diff --git a/src/dashboard.py b/src/dashboard.py index f65c53d..0d70141 100644 --- a/src/dashboard.py +++ b/src/dashboard.py @@ -1801,6 +1801,7 @@ class DashboardConfig: "Database":{ "type": "sqlite", "host": "", + "port": "", "username": "", "password": "" }, @@ -1830,7 +1831,7 @@ class DashboardConfig: def getConnectionString(self, database) -> str or None: if self.GetConfig("Database", "type")[1] == "sqlite": - return f'sqlite:///{os.path.join(CONFIGURATION_PATH, "db", f".db")}' + return f'sqlite:///{os.path.join(CONFIGURATION_PATH, "db", f"{database}.db")}' elif self.GetConfig("Database", "type")[1] == "postgresql": return f'postgresql+psycopg2://{self.GetConfig("Database", "username")[1]}:{self.GetConfig("Database", "password")[1]}@{self.GetConfig("Database", "host")[1]}/{database}' return None diff --git a/src/modules/DashboardLogger.py b/src/modules/DashboardLogger.py index b55b149..59ea664 100644 --- a/src/modules/DashboardLogger.py +++ b/src/modules/DashboardLogger.py @@ -4,16 +4,19 @@ Dashboard Logger Class import os, uuid import sqlalchemy as db from datetime import datetime +from sqlalchemy_utils import database_exists, create_database class DashboardLogger: def __init__(self, CONFIGURATION_PATH, DashboardConfig): self.engine = db.create_engine(DashboardConfig.getConnectionString("wgdashboard_log")) + if not database_exists(self.engine.url): + create_database(self.engine.url) self.loggerdb = self.engine.connect() self.metadata = db.MetaData() self.dashboardLoggerTable = db.Table('DashboardLog', self.metadata, db.Column('LogID', db.VARCHAR, nullable=False, primary_key=True), db.Column('LogDate', (db.DATETIME if DashboardConfig.GetConfig("Database", "type")[1] == 'sqlite' else db.TIMESTAMP), - server_default=datetime.now().strftime("%Y-%m-%d %H:%M:%S")), + server_default=db.func.now()), db.Column('URL', db.VARCHAR), db.Column('IP', db.VARCHAR), diff --git a/src/modules/PeerJobLogger.py b/src/modules/PeerJobLogger.py index 9cced95..991f204 100644 --- a/src/modules/PeerJobLogger.py +++ b/src/modules/PeerJobLogger.py @@ -5,17 +5,21 @@ import os, uuid import sqlalchemy as db from .Log import Log from datetime import datetime +from sqlalchemy_utils import database_exists, create_database class PeerJobLogger: def __init__(self, CONFIGURATION_PATH, AllPeerJobs, DashboardConfig): self.engine = db.create_engine(DashboardConfig.getConnectionString("wgdashboard_log")) + if not database_exists(self.engine.url): + create_database(self.engine.url) + self.loggerdb = self.engine.connect() self.metadata = db.MetaData() self.jobLogTable = db.Table('JobLog', self.metadata, db.Column('LogID', db.String, nullable=False, primary_key=True), db.Column('JobID', db.String, nullable=False), db.Column('LogDate', (db.DATETIME if DashboardConfig.GetConfig("Database", "type")[1] == 'sqlite' else db.TIMESTAMP), - server_default=datetime.now().strftime("%Y-%m-%d %H:%M:%S")), + server_default=db.func.now()), db.Column('Status', db.String, nullable=False), db.Column('Message', db.String) ) diff --git a/src/requirements.txt b/src/requirements.txt index f713858..d4e742c 100644 --- a/src/requirements.txt +++ b/src/requirements.txt @@ -9,4 +9,5 @@ gunicorn requests tcconfig sqlalchemy +sqlalchemy_utils psycopg2 \ No newline at end of file