fix teg
This commit is contained in:
17
api/main.py
17
api/main.py
@@ -10,7 +10,7 @@ from slowapi import _rate_limit_exceeded_handler
|
||||
from slowapi.errors import RateLimitExceeded
|
||||
from rate_limiter import limiter
|
||||
|
||||
from bd.database import wait_for_db, engine, Base
|
||||
from bd.database import wait_for_db
|
||||
from route.public import router as public_router
|
||||
from route.admin_auth import router as auth_router, ensure_default_admin
|
||||
from route.admin_articles import router as articles_router
|
||||
@@ -32,11 +32,22 @@ def _verify_docs(creds: HTTPBasicCredentials = Depends(_basic)):
|
||||
return creds.username
|
||||
|
||||
|
||||
def _run_migrations():
|
||||
import subprocess, sys
|
||||
result = subprocess.run(
|
||||
["alembic", "upgrade", "head"],
|
||||
capture_output=True, text=True
|
||||
)
|
||||
if result.returncode != 0:
|
||||
print(f"[Alembic] Ошибка миграции:\n{result.stderr}", file=sys.stderr)
|
||||
else:
|
||||
print(f"[Alembic] {result.stdout.strip() or 'Миграции применены'}")
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
await wait_for_db()
|
||||
async with engine.begin() as conn:
|
||||
await conn.run_sync(Base.metadata.create_all)
|
||||
_run_migrations()
|
||||
await ensure_default_admin()
|
||||
scheduler.start()
|
||||
yield
|
||||
|
||||
Reference in New Issue
Block a user