This commit is contained in:
jze9
2026-05-15 20:12:44 +05:00
parent 2335497226
commit dd7d8a7ccf
21 changed files with 672 additions and 121 deletions

View File

@@ -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