Added support to postgresql and Mysql with SqlAlchemy

This commit is contained in:
Donald Zou
2025-05-05 00:40:29 +08:00
parent 61404d9c12
commit 196dc78b4f
4 changed files with 25 additions and 14 deletions

View File

@@ -7,17 +7,17 @@ from .Log import Log
from datetime import datetime
class PeerJobLogger:
def __init__(self, CONFIGURATION_PATH, AllPeerJobs):
self.engine = db.create_engine(f'sqlite:///{os.path.join(CONFIGURATION_PATH, "db", "wgdashboard_log.db")}')
def __init__(self, CONFIGURATION_PATH, AllPeerJobs, DashboardConfig):
self.engine = db.create_engine(DashboardConfig.getConnectionString("wgdashboard_log"))
self.loggerdb = self.engine.connect()
self.metadata = db.MetaData()
self.jobLogTable = db.Table('JobLog', self.metadata,
db.Column('LogID', db.VARCHAR, nullable=False, primary_key=True),
db.Column('JobID', db.VARCHAR, nullable=False),
db.Column('LogDate', db.DATETIME,
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")),
db.Column('Status', db.VARCHAR, nullable=False),
db.Column('Message', db.VARCHAR)
db.Column('Status', db.String, nullable=False),
db.Column('Message', db.String)
)
self.logs: list[Log] = []
self.metadata.create_all(self.engine)