56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
|
"""初始化管理员账号脚本 - 使用SQL直接插入"""
|
|
|
|
import asyncio
|
|
import sys
|
|
sys.path.insert(0, '/Users/Chiguyong/Code/Fischer/geo/backend')
|
|
|
|
async def init_admin():
|
|
from app.database import AsyncSessionLocal
|
|
from sqlalchemy import text
|
|
|
|
email = "admin"
|
|
password_hash = "$2b$12$fIUPOBe/MQpN1Iajrvv.DuGQJlWBPOMO/PUaYcm0fh/j.lmgKlqXa"
|
|
|
|
async with AsyncSessionLocal() as db:
|
|
result = await db.execute(
|
|
text("SELECT id FROM users WHERE email = :email"),
|
|
{"email": email}
|
|
)
|
|
existing = result.fetchone()
|
|
|
|
if existing:
|
|
await db.execute(
|
|
text("""
|
|
UPDATE users
|
|
SET password_hash = :password_hash,
|
|
is_admin = true,
|
|
is_active = true,
|
|
email_verified = true,
|
|
plan = 'enterprise',
|
|
name = '管理员'
|
|
WHERE email = :email
|
|
"""),
|
|
{"password_hash": password_hash, "email": email}
|
|
)
|
|
await db.commit()
|
|
print(f"管理员账号已更新: {email}")
|
|
else:
|
|
await db.execute(
|
|
text("""
|
|
INSERT INTO users (id, email, password_hash, name, is_admin, is_active, email_verified, plan, max_queries)
|
|
VALUES (gen_random_uuid(), :email, :password_hash, '管理员', true, true, true, 'enterprise', 500)
|
|
"""),
|
|
{"email": email, "password_hash": password_hash}
|
|
)
|
|
await db.commit()
|
|
print(f"管理员账号已创建: {email}")
|
|
|
|
print("")
|
|
print("登录信息:")
|
|
print(f" 邮箱: {email}")
|
|
print(f" 密码: admin@123")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(init_admin())
|