Migration should work now

This commit is contained in:
Jonas Linter
2025-10-16 16:16:36 +02:00
parent 48113f6592
commit c43782c664
4 changed files with 161 additions and 1 deletions

View File

@@ -43,6 +43,7 @@ from .db import Reservation as DBReservation
from .email_monitoring import ReservationStatsCollector
from .email_service import create_email_service
from .logging_config import get_logger, setup_logging
from .migrations import run_all_migrations
from .notification_adapters import EmailNotificationAdapter, PushoverNotificationAdapter
from .notification_service import NotificationService
from .pushover_service import create_pushover_service
@@ -276,7 +277,13 @@ async def lifespan(app: FastAPI):
elif hotel_id and not push_endpoint:
_LOGGER.info("Hotel %s has no push_endpoint configured", hotel_id)
# Create tables
# Run database migrations first (only primary worker to avoid race conditions)
if is_primary:
await run_all_migrations(engine)
else:
_LOGGER.info("Skipping migrations (non-primary worker)")
# Create tables (all workers)
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
_LOGGER.info("Database tables checked/created at startup.")