FunkyBot/libs/Db.py

30 lines
849 B
Python
Raw Normal View History

2025-06-16 08:06:06 +00:00
from sqlalchemy import create_engine
from sqlalchemy.orm import DeclarativeBase, Session
import os
import importlib
2025-06-16 08:06:06 +00:00
class Db:
class Model(DeclarativeBase):
__table_args__ = dict(extend_existing=True)
pass
2025-06-16 08:06:06 +00:00
def __init__(self, db, echo=False):
self.db = db
self.echo_output = echo
self.Engine = self.create_engine()
self.session = Session(bind=self.Engine)
self.import_models()
self.create_tables()
2025-06-16 08:06:06 +00:00
def create_engine(self):
return create_engine(self.db, echo=self.echo_output)
def create_tables(self):
self.Model.metadata.create_all(bind=self.Engine)
def import_models(self):
for filename in os.listdir('./data/models'):
if filename.endswith('.py'):
importlib.import_module('.' + filename[:-3], 'data.models')