finance-api/database/__init__.py
2024-07-01 11:38:33 -06:00

28 lines
787 B
Python

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)