Files
backend/main.py

51 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from fastapi import FastAPI
from instance.configdb import init_postgresql, init_mongodb, close_connections
from app.routes import user_router, subscription_router
from app.services.db_manager import DatabaseManager
from instance.configdb import get_postgres_session
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
app = FastAPI()
database_manager = DatabaseManager(session_generator=get_postgres_session)
@app.on_event("startup")
async def startup():
"""
Инициализация подключения к базам данных.
"""
try:
logger.info("Инициализация PostgreSQL...")
await init_postgresql()
logger.info("PostgreSQL успешно инициализирован.")
logger.info("Инициализация MongoDB...")
await init_mongodb()
logger.info("MongoDB успешно инициализирован.")
except Exception as e:
logger.error(f"Ошибка при инициализации баз данных: {e}")
raise RuntimeError("Не удалось инициализировать базы данных")
@app.on_event("shutdown")
async def shutdown():
"""
Закрытие соединений с базами данных.
"""
try:
logger.info("Закрытие соединений с базами данных...")
await close_connections()
logger.info("Соединения с базами данных успешно закрыты.")
except Exception as e:
logger.error(f"Ошибка при закрытии соединений: {e}")
app.include_router(user_router, prefix="/api")
#app.include_router(payment_router, prefix="/api")
app.include_router(subscription_router, prefix="/api")
@app.get("/")
def read_root():
return {"message": "FastAPI приложение работает!"}