You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
orquestrador/app/main.py

36 lines
1.2 KiB
Python

from fastapi import FastAPI
from app.api.routes import router
from app.api.tool_routes import router as tool_router
from app.db.database import Base, engine
# 👇 IMPORTANTE: registrar models no metadata
from app.db.models import Tool
app = FastAPI(title="AI Orquestrador")
app.include_router(router)
app.include_router(tool_router)
@app.on_event("startup")
async def startup_event():
"""
Inicializa o banco de dados e executa seeds automaticamente.
"""
try:
print("🚀 [Auto-Seed] Iniciando configuração do banco...")
# 1. Cria as tabelas se não existirem
# O engine deve estar configurado para usar o Unix Socket no Cloud Run
Base.metadata.create_all(bind=engine)
# 2. Executa a seed das ferramentas
from app.db.tool_seed import seed_tools
seed_tools()
print("✅ [Auto-Seed] Tabelas e ferramentas configuradas com sucesso.")
except Exception as e:
# IMPORTANTE: Logamos o erro mas NÃO damos 'raise e'
# Isso permite que o Uvicorn abra a porta 8080 e o deploy complete
print(f"⚠️ [Auto-Seed] Aviso: Falha na inicialização automática: {e}")
print("A aplicação tentará operar, verifique a conexão com o Cloud SQL.")