Added ability to fully remove database

This commit is contained in:
Yarne Coppens 2024-08-08 16:50:52 +02:00
parent f96494cf07
commit 962a842b44
5 changed files with 7 additions and 0 deletions

Binary file not shown.

View file

@ -2,6 +2,7 @@ import os
ROOT_PATH = project_root = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) ROOT_PATH = project_root = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
SECRETS_FILE_PATH = ROOT_PATH + '/secrets/auth.yaml' SECRETS_FILE_PATH = ROOT_PATH + '/secrets/auth.yaml'
DATABASE_FILE_PATH = ROOT_PATH + '/db/database.db'
DATABASE_FILE_PROJECT_PATH = f"/db/database.db" DATABASE_FILE_PROJECT_PATH = f"/db/database.db"
SQLITE_URL = f"sqlite://{DATABASE_FILE_PROJECT_PATH}" SQLITE_URL = f"sqlite://{DATABASE_FILE_PROJECT_PATH}"

View file

@ -7,6 +7,7 @@ from src.modules import data_connection
@asynccontextmanager @asynccontextmanager
async def lifespan(app: FastAPI): async def lifespan(app: FastAPI):
# Startup # Startup
data_connection.delete_database()
data_connection.create_db_and_tables() data_connection.create_db_and_tables()
yield yield
# Shutdown # Shutdown

View file

@ -21,6 +21,8 @@ def get_user_wishlist_collection() -> list[boardgame_classes.BoardGame]:
def get_plays() -> list[play_classes.Play]: def get_plays() -> list[play_classes.Play]:
return bgg_connection.get_plays() return bgg_connection.get_plays()
def delete_database():
db_connection.delete_database()
def create_db_and_tables(): def create_db_and_tables():
db_connection.create_db_and_tables() db_connection.create_db_and_tables()

View file

@ -1,5 +1,6 @@
from sqlmodel import create_engine, SQLModel from sqlmodel import create_engine, SQLModel
from src.config import definitions from src.config import definitions
import os
sqlite_url = definitions.SQLITE_URL sqlite_url = definitions.SQLITE_URL
@ -7,6 +8,8 @@ sqlite_url = definitions.SQLITE_URL
connect_args = {"check_same_thread": False} connect_args = {"check_same_thread": False}
engine = create_engine(sqlite_url, echo=True, connect_args=connect_args) engine = create_engine(sqlite_url, echo=True, connect_args=connect_args)
def delete_database():
os.remove(definitions.DATABASE_FILE_PATH)
def create_db_and_tables(): def create_db_and_tables():
SQLModel.metadata.create_all(engine) SQLModel.metadata.create_all(engine)