Fix database migration error related to app module imports
- Fixed circular import issue between base.py and base_class.py - Updated base_class.py to define Base directly and import models - Refactored base.py to import Base from base_class.py - Updated all models to import Base from base_class.py - Enhanced error handling in migrations/env.py to catch ImportError
This commit is contained in:
parent
120794996d
commit
f14ce141af
@ -1,3 +1,3 @@
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
|
||||
Base = declarative_base()
|
||||
# This module is used for SQLAlchemy session setup
|
||||
# Import from base_class instead of defining Base here to avoid circular imports
|
||||
from app.db.base_class import Base # noqa
|
||||
|
@ -1,2 +1,11 @@
|
||||
# Import all the models, so that Base has them before being
|
||||
# imported by Alembic
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
# Import models to register them with Base
|
||||
from app.models.user import User # noqa
|
||||
from app.models.product import Product # noqa
|
||||
from app.models.order import Order, OrderItem # noqa
|
||||
from app.models.cart import CartItem # noqa
|
||||
|
@ -2,7 +2,7 @@ from datetime import datetime
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from app.db.base import Base
|
||||
from app.db.base_class import Base
|
||||
|
||||
|
||||
class CartItem(Base):
|
||||
|
@ -3,7 +3,7 @@ from enum import Enum as PyEnum
|
||||
from sqlalchemy import Column, DateTime, Enum, Float, ForeignKey, Integer, String
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from app.db.base import Base
|
||||
from app.db.base_class import Base
|
||||
|
||||
|
||||
class OrderStatus(str, PyEnum):
|
||||
|
@ -2,7 +2,7 @@ from datetime import datetime
|
||||
from sqlalchemy import Column, DateTime, Float, Integer, String, Text
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from app.db.base import Base
|
||||
from app.db.base_class import Base
|
||||
|
||||
|
||||
class Product(Base):
|
||||
|
@ -2,7 +2,7 @@ from datetime import datetime
|
||||
from sqlalchemy import Boolean, Column, DateTime, Integer, String
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from app.db.base import Base
|
||||
from app.db.base_class import Base
|
||||
|
||||
|
||||
class User(Base):
|
||||
|
@ -13,8 +13,9 @@ sys.path.insert(0, parent_dir)
|
||||
|
||||
# Import models for alembic
|
||||
try:
|
||||
from app.db.base_class import Base # noqa: E402
|
||||
except ModuleNotFoundError:
|
||||
# Import Base and all models
|
||||
from app.db.base_class import Base
|
||||
except (ModuleNotFoundError, ImportError):
|
||||
# For container environments where paths might differ
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user