Files
secondary-school-grade-archive/backend/app/services/seed.py
T
dekun f1ad4273f4 零 Node 部署、超级管理员,并完善本地构建发布文档。
- FastAPI 单进程托管 frontend/dist,systemd 替代 PM2

- 超级管理员 admin、注册开关与用户管理

- README/DEPLOY/USAGE 说明:改代码须本地构建 dist 后 push,服务器 update.sh

- 提交 frontend/dist 与 build-frontend 脚本
2026-06-28 13:19:41 +08:00

45 lines
1.2 KiB
Python

from sqlalchemy.orm import Session
from app.core.config import settings
from app.core.security import get_password_hash
from app.models.user import Subject, SystemSettings, User
DEFAULT_SUBJECTS = [
"语文",
"数学",
"英语",
"物理",
"化学",
"生物",
"历史",
"地理",
"政治",
]
def seed_subjects(db: Session) -> None:
existing = {s.name for s in db.query(Subject).all()}
for name in DEFAULT_SUBJECTS:
if name not in existing:
db.add(Subject(name=name))
db.commit()
def seed_admin_and_settings(db: Session) -> None:
if db.get(SystemSettings, 1) is None:
db.add(SystemSettings(id=1, registration_enabled=True))
admin = db.query(User).filter(User.username == settings.ADMIN_DEFAULT_USERNAME).first()
if admin is None:
db.add(
User(
username=settings.ADMIN_DEFAULT_USERNAME,
password_hash=get_password_hash(settings.ADMIN_DEFAULT_PASSWORD),
is_superuser=True,
)
)
elif not admin.is_superuser:
admin.is_superuser = True
db.commit()