from sqlalchemy import create_engine, select from sqlalchemy.orm import Session from app.config import settings from app.models.admin import Admin from app.utils.security import hash_password def sync_database_url() -> str: return ( f"mysql+pymysql://{settings.mysql_user}:{settings.mysql_password}" f"@{settings.mysql_host}:{settings.mysql_port}/{settings.mysql_database}?charset=utf8mb4" ) def main() -> None: engine = create_engine(sync_database_url()) with Session(engine) as session: existing = session.execute(select(Admin).where(Admin.username == "admin")).scalar_one_or_none() if existing: print("Admin user already exists: admin") return admin = Admin(username="admin", password_hash=hash_password("Admin@123456"), role=2, is_active=1) session.add(admin) session.commit() print("Created admin user: admin / Admin@123456") if __name__ == '__main__': main()