42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
||
"""创建默认管理员账号 admin@example.com / admin123,便于前端登录。"""
|
||
import asyncio
|
||
import os
|
||
import sys
|
||
|
||
# 在导入 th_agenter 前加载 .env
|
||
from pathlib import Path
|
||
_root = Path(__file__).resolve().parents[1]
|
||
sys.path.insert(0, str(_root))
|
||
os.chdir(_root)
|
||
|
||
from dotenv import load_dotenv
|
||
load_dotenv()
|
||
|
||
# 若未设置,可在此指定(或通过环境变量传入)
|
||
# os.environ.setdefault("DATABASE_URL", "mysql+aiomysql://root:xxx@localhost:3306/allm?charset=utf8mb4")
|
||
|
||
from th_agenter.db.database import AsyncSessionFactory
|
||
from th_agenter.services.user import UserService
|
||
from utils.util_schemas import UserCreate
|
||
|
||
|
||
async def main():
|
||
async with AsyncSessionFactory() as session:
|
||
svc = UserService(session)
|
||
exists = await svc.get_user_by_email("admin@example.com")
|
||
if exists:
|
||
print("admin@example.com 已存在,跳过创建")
|
||
return
|
||
user = await svc.create_user(UserCreate(
|
||
username="admin",
|
||
email="admin@example.com",
|
||
password="admin123",
|
||
full_name="Admin",
|
||
))
|
||
print(f"已创建管理员: {user.username} / admin@example.com / admin123")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
asyncio.run(main())
|