From a73eea4d9ebc8a8ee352752138dd13d8d1214707 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Sat, 21 Jun 2025 21:52:51 +0000 Subject: [PATCH] run alembic migrations on startup --- crawler/api/app.py | 16 +++++++++++++++- crawler/api/worker.py | 2 -- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/crawler/api/app.py b/crawler/api/app.py index 289c5db..7eac1a7 100644 --- a/crawler/api/app.py +++ b/crawler/api/app.py @@ -21,8 +21,22 @@ from repositories.listing_repository import ListingRepository from database import engine from fastapi.middleware.cors import CORSMiddleware from ui_exporter import export_immoweb +from alembic import command +from alembic.config import Config +from contextlib import asynccontextmanager -app = FastAPI() + +@asynccontextmanager +async def lifespan(app: FastAPI): + alembic_cfg = Config("./alembic.ini") + print("Running alembic migrations") + command.upgrade(alembic_cfg, "head") + print("Finished running alembic migrations") + yield + print("Shutting down") + + +app = FastAPI(lifespan=lifespan) # Start worker thread WorkerManager(DumpListingsWorker()).start() diff --git a/crawler/api/worker.py b/crawler/api/worker.py index a8e7fe5..dcffaa2 100644 --- a/crawler/api/worker.py +++ b/crawler/api/worker.py @@ -10,8 +10,6 @@ import queue from threading import Thread from database import engine -from models.listing import Listing, QueryParameters -from pydantic import BaseModel from repositories.listing_repository import ListingRepository dump_listings_module = importlib.import_module("1_dump_listings")