Spaces:
Running
Running
from fastapi import FastAPI | |
from fastapi.middleware.cors import CORSMiddleware | |
from .core.config import settings | |
from .database import Base, engine | |
from .routes import auth, apikey, chat, about | |
def run_migrations(): | |
try: | |
from alembic import command | |
from alembic.config import Config | |
import os | |
cfg = Config(os.path.join(os.path.dirname(__file__), "migrations", "alembic.ini")) | |
cfg.set_main_option("script_location", os.path.join(os.path.dirname(__file__), "migrations")) | |
cfg.set_main_option("sqlalchemy.url", settings.DATABASE_URL) | |
command.upgrade(cfg, "head") | |
except Exception as e: | |
print("Alembic migration error:", e) | |
def create_app() -> FastAPI: | |
app = FastAPI(title=settings.APP_NAME) | |
app.add_middleware( | |
CORSMiddleware, | |
allow_origins=[settings.CORS_ORIGINS] if settings.CORS_ORIGINS != "*" else ["*"], | |
allow_credentials=True, | |
allow_methods=["*"], | |
allow_headers=["*"], | |
) | |
Base.metadata.bind = engine | |
app.include_router(auth.router) | |
app.include_router(apikey.router) | |
app.include_router(chat.router) | |
app.include_router(about.router) | |
return app | |