diff --git a/src/backend/langflow/services/database/service.py b/src/backend/langflow/services/database/service.py index 3610f0dea..1216d5699 100644 --- a/src/backend/langflow/services/database/service.py +++ b/src/backend/langflow/services/database/service.py @@ -5,16 +5,17 @@ from typing import TYPE_CHECKING import sqlalchemy as sa from alembic import command, util from alembic.config import Config +from loguru import logger +from sqlalchemy import inspect +from sqlalchemy.exc import OperationalError +from sqlmodel import Session, SQLModel, create_engine, select, text + from langflow.services.base import Service from langflow.services.database import models # noqa from langflow.services.database.models.user.crud import get_user_by_username from langflow.services.database.utils import Result, TableResults from langflow.services.deps import get_settings_service from langflow.services.utils import teardown_superuser -from loguru import logger -from sqlalchemy import inspect -from sqlalchemy.exc import OperationalError -from sqlmodel import Session, SQLModel, create_engine, select, text if TYPE_CHECKING: from sqlalchemy.engine import Engine @@ -147,16 +148,20 @@ class DatabaseService(Service): try: command.check(alembic_cfg) except Exception as exc: - if isinstance(exc, util.exc.CommandError) or isinstance(exc, util.exc.AutogenerateDiffsDetected): + if isinstance( + exc, (util.exc.CommandError, util.exc.AutogenerateDiffsDetected) + ): command.upgrade(alembic_cfg, "head") time.sleep(3) try: command.check(alembic_cfg) - except util.exc.AutogenerateDiffsDetected: + except util.exc.AutogenerateDiffsDetected as e: logger.exception("AutogenerateDiffsDetected: {exc}") if not fix: - raise RuntimeError("Something went wrong running migrations. Please, run `langflow migration --fix`") + raise RuntimeError( + "Something went wrong running migrations. Please, run `langflow migration --fix`" + ) from e if fix: self.try_downgrade_upgrade_until_success(alembic_cfg)