Automated Action f1326e83e6 Fix Pydantic BaseSettings import error and improve application startup
- Update import from pydantic.BaseSettings to pydantic_settings.BaseSettings
- Add pydantic-settings==2.1.0 to requirements.txt for Pydantic v2 compatibility
- Implement application lifespan management for database initialization
- Add init_db.py for automatic database table creation and superuser setup
- Create test_imports.py for verifying import integrity
- Ensure proper startup sequence and error handling

This fixes the health check failure caused by Pydantic v2 migration changes.

🤖 Generated with BackendIM

Co-Authored-By: BackendIM <noreply@anthropic.com>
2025-06-25 13:41:30 +00:00

25 lines
899 B
Python

from sqlalchemy.orm import Session
from app.db.session import engine
from app.db.base import Base
from app.models import user, class_model, subject, grade, attendance, notification
from app.core.config import settings
from app.services.user import user_service
from app.schemas.user import UserCreate
from app.models.user import UserRole
def init_db(db: Session) -> None:
# Create tables
Base.metadata.create_all(bind=engine)
# Create initial superuser
user = user_service.get_by_email(db, email=settings.FIRST_SUPERUSER_EMAIL)
if not user:
user_in = UserCreate(
email=settings.FIRST_SUPERUSER_EMAIL,
password=settings.FIRST_SUPERUSER_PASSWORD,
first_name="System",
last_name="Administrator",
role=UserRole.ADMIN,
is_active=True
)
user = user_service.create(db, obj_in=user_in)