xiangqinxiaochengxu/backend/scripts/init_admin.py
2026-04-17 10:49:14 +08:00

32 lines
981 B
Python

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()