Initial MVP skeleton with auth, chat persistence, UI and text LLM integration
This commit is contained in:
37
backend/app/db/init_db.py
Normal file
37
backend/app/db/init_db.py
Normal file
@@ -0,0 +1,37 @@
|
||||
import logging
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
from sqlalchemy import select
|
||||
|
||||
from app.core.config import settings
|
||||
from app.core.security import get_password_hash
|
||||
from app.db.base_class import Base
|
||||
from app.db.session import engine
|
||||
from app.db.models import User
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def init_db(db: Session) -> None:
|
||||
# MVP: create tables if they don't exist
|
||||
Base.metadata.create_all(bind=engine)
|
||||
|
||||
bootstrap_admin(db)
|
||||
|
||||
def bootstrap_admin(db: Session) -> None:
|
||||
admin_login = settings.admin_bootstrap_login
|
||||
admin_pass = settings.admin_bootstrap_password
|
||||
|
||||
user = db.scalar(select(User).where(User.login == admin_login))
|
||||
if not user:
|
||||
logger.info(f"Creating bootstrap admin user: {admin_login}")
|
||||
hashed_password = get_password_hash(admin_pass)
|
||||
admin_user = User(
|
||||
login=admin_login,
|
||||
hashed_password=hashed_password,
|
||||
is_active=True,
|
||||
)
|
||||
db.add(admin_user)
|
||||
db.commit()
|
||||
db.refresh(admin_user)
|
||||
else:
|
||||
logger.info(f"Admin user {admin_login} already exists")
|
||||
Reference in New Issue
Block a user