backend_update_260131
This commit is contained in:
@@ -24,12 +24,62 @@ async def init_db():
|
||||
# 自动创建表
|
||||
await conn.run_sync(Base.metadata.create_all)
|
||||
|
||||
# 创建默认管理员用户
|
||||
async with AsyncSessionLocal() as session:
|
||||
from . import auth
|
||||
from sqlalchemy.future import select
|
||||
|
||||
# 检查是否已存在 admin 用户
|
||||
# 1. 检查并创建默认订阅级别 (MUST BE FIRST because of FK constraints)
|
||||
tiers = [
|
||||
{
|
||||
"name": "Free",
|
||||
"max_heirs": 1,
|
||||
"weekly_token_limit": 1000,
|
||||
"max_assets": 5,
|
||||
"max_storage_mb": 10,
|
||||
"can_use_ai_proxy": False,
|
||||
"description": "Standard free tier"
|
||||
},
|
||||
{
|
||||
"name": "Pro",
|
||||
"max_heirs": 5,
|
||||
"weekly_token_limit": 10000,
|
||||
"max_assets": 50,
|
||||
"max_storage_mb": 100,
|
||||
"can_use_ai_proxy": True,
|
||||
"description": "Professional tier for active users"
|
||||
},
|
||||
{
|
||||
"name": "Ultra",
|
||||
"max_heirs": 100,
|
||||
"weekly_token_limit": 100000,
|
||||
"max_assets": 1000,
|
||||
"max_storage_mb": 1024,
|
||||
"can_use_ai_proxy": True,
|
||||
"description": "Ultimate tier for power users"
|
||||
},
|
||||
{
|
||||
"name": "Unlimited",
|
||||
"max_heirs": 9999,
|
||||
"weekly_token_limit": 999999,
|
||||
"max_assets": 9999,
|
||||
"max_storage_mb": 999999,
|
||||
"can_use_ai_proxy": True,
|
||||
"description": "Internal unlimited tier"
|
||||
}
|
||||
]
|
||||
|
||||
for tier_data in tiers:
|
||||
result = await session.execute(
|
||||
select(models.SubscriptionPlans).where(models.SubscriptionPlans.name == tier_data["name"])
|
||||
)
|
||||
if not result.scalars().first():
|
||||
new_tier = models.SubscriptionPlans(**tier_data)
|
||||
session.add(new_tier)
|
||||
print(f"✅ Default subscription tier '{tier_data['name']}' created")
|
||||
|
||||
await session.commit()
|
||||
|
||||
# 2. 检查并创建默认管理员用户
|
||||
result = await session.execute(
|
||||
select(models.User).where(models.User.username == "admin")
|
||||
)
|
||||
@@ -52,7 +102,7 @@ async def init_db():
|
||||
await session.commit()
|
||||
print("✅ Default admin user created (username: admin, password: admin123)")
|
||||
|
||||
# 检查是否已存在 Gemini 配置
|
||||
# 3. 检查是否已存在 Gemini 配置
|
||||
result = await session.execute(
|
||||
select(models.AIConfig).where(models.AIConfig.provider_name == "gemini")
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user