Files
certificate-system/backend/app/db/init_db.py
2026-06-06 19:32:24 +08:00

51 lines
1.5 KiB
Python

from sqlalchemy.orm import Session
from app.core.security import hash_password
from app.db.base import Base
from app.db.session import engine
from app.models import AdminUser, ProjectCourse, Role
def create_tables() -> None:
import app.models # noqa: F401
Base.metadata.create_all(bind=engine)
def seed_defaults(db: Session, admin_username: str, admin_password: str) -> None:
roles = [
("system_admin", "系统管理员"),
("certificate_admin", "证书管理员"),
("readonly", "只读查看人员"),
]
for code, name in roles:
if not db.query(Role).filter(Role.code == code).first():
db.add(Role(code=code, name=name))
projects = [
("DBY", "大本营"),
("QSX", "七三线"),
]
for code, name in projects:
if not db.query(ProjectCourse).filter(ProjectCourse.code == code).first():
db.add(
ProjectCourse(
code=code,
name=name,
default_certificate_name="培训结业证书",
default_course_name=name,
default_stage_name=None,
default_issuer_name="本公司",
)
)
if not db.query(AdminUser).filter(AdminUser.username == admin_username).first():
db.add(
AdminUser(
username=admin_username,
password_hash=hash_password(admin_password),
role_code="system_admin",
)
)
db.commit()