refaktorálás javításai
This commit is contained in:
@@ -3,10 +3,18 @@ from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sess
|
||||
from sqlalchemy.orm import DeclarativeBase
|
||||
from app.core.config import settings
|
||||
|
||||
# Most már settings.SQLALCHEMY_DATABASE_URI létezik a property miatt!
|
||||
# 1. Base definíciója - Ezt importálják a modellek
|
||||
class Base(DeclarativeBase):
|
||||
"""
|
||||
Központi SQLAlchemy Base osztály.
|
||||
A modellek a 'from app.database import Base' segítségével érik el.
|
||||
"""
|
||||
pass
|
||||
|
||||
# 2. Engine és SessionLocal beállítása
|
||||
engine = create_async_engine(
|
||||
str(settings.SQLALCHEMY_DATABASE_URI),
|
||||
echo=settings.DEBUG_MODE,
|
||||
echo=settings.DEBUG_MODE,
|
||||
pool_size=20,
|
||||
max_overflow=10,
|
||||
pool_pre_ping=True,
|
||||
@@ -20,5 +28,20 @@ AsyncSessionLocal = async_sessionmaker(
|
||||
expire_on_commit=False
|
||||
)
|
||||
|
||||
class Base(DeclarativeBase):
|
||||
pass
|
||||
# 3. A "Körforgás-törő" függvény
|
||||
def ensure_models_loaded():
|
||||
"""
|
||||
Dinamikusan betölti az összes modellt a regiszter segítségével.
|
||||
Helyi importot használunk, hogy elkerüljük a körkörös függőséget:
|
||||
database -> registry -> database (Base)
|
||||
"""
|
||||
try:
|
||||
# Itt importálunk helyben, így a Base már létezik a memóriában
|
||||
from app.models.registry import load_all_models
|
||||
load_all_models()
|
||||
print("✅ Adatbázis modellek regisztrálva a MetaData-ba.")
|
||||
except ImportError as e:
|
||||
print(f"⚠️ Hiba a modellek dinamikus betöltésekor: {e}")
|
||||
|
||||
# Automatikus betöltés meghívása (opcionális, de ajánlott az API indításakor)
|
||||
# ensure_models_loaded()
|
||||
Reference in New Issue
Block a user