from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import scoped_session from model.base import Base from sqlalchemy import MetaData, Table class Database: def __init__(self, database_url="sqlite:///finance.db"): self.engine = create_engine(database_url) self.session = scoped_session(sessionmaker(bind=self.engine)) def create_tables(self): Base.metadata.create_all(self.engine) def drop_tables(self): Base.metadata.drop_all(self.engine) def drop_table(self, table): meta = MetaData() meta.reflect(bind=self.engine) if table in meta.tables: table = Table(table, meta, autoload_with=self.engine) table.drop(self.engine, checkfirst=True)