import os from sqlalchemy.orm import Session from app.core.config import get_settings from app.core.security import hash_password from app.core.db import engine from app.models import User, Role, UserRole def main(): username = os.getenv("INIT_ADMIN_USERNAME", "admin") password = os.getenv("INIT_ADMIN_PASSWORD", "123456") with Session(engine) as db: role = db.query(Role).filter(Role.role_code == "admin").first() if not role: role = Role(role_code="admin", role_name="管理员") db.add(role) db.flush() user = db.query(User).filter(User.username == username).first() if not user: user = User( username=username, display_name="Administrator", email=None, phone=None, password_hash=hash_password(password), status=1, is_deleted=0, ) db.add(user) db.flush() else: user.password_hash = hash_password(password) user.status = 1 user.is_deleted = 0 exist_link = db.query(UserRole).filter(UserRole.user_id == user.user_id, UserRole.role_id == role.role_id).first() if not exist_link: db.add(UserRole(user_id=user.user_id, role_id=role.role_id)) db.commit() print(f"Admin ready: {username}") if __name__ == "__main__": main()