-- AIFlow 智能自动化PaaS平台 - 初始化数据(幂等) USE aiflow; -- ============================================================ -- 初始化管理员账号 -- 密码: admin123 (bcrypt hash) -- ============================================================ INSERT IGNORE INTO users (id, username, email, password_hash, role, status, membership_level, membership_expire_at) VALUES ('admin-001', 'admin', 'admin@aiflow.com', '$2b$12$Gqf3M1WJH54pTIWxg9Mztu7W3.NSO6i.H1IITWO7/EDRS4.tqJFyC', 'admin', 'active', 3, '2099-12-31 23:59:59'); -- 幂等修正:覆盖旧数据卷中可能存在的无效密码哈希,确保 admin 密码始终为 admin123 UPDATE users SET password_hash = '$2b$12$Gqf3M1WJH54pTIWxg9Mztu7W3.NSO6i.H1IITWO7/EDRS4.tqJFyC' WHERE username = 'admin'; -- ============================================================ -- 初始化注册设置 -- ============================================================ INSERT IGNORE INTO register_settings (id, phone_required, phone_sms_required, email_required, email_verify_required, real_name_required) VALUES ('reg-default', 0, 0, 0, 0, 0); -- ============================================================ -- 初始化网站基础设置 -- ============================================================ INSERT IGNORE INTO site_settings (id, `key`, `value`) VALUES ('d1d0c711-598a-11f1-a868-f201d42a48f4', 'logo', ''), ('d1d0c904-598a-11f1-a868-f201d42a48f4', 'site_name', 'AIFlow'), ('d1d0ca18-598a-11f1-a868-f201d42a48f4', 'announcement', '欢迎使用AIFlow智能自动化PaaS平台!'), ('d1d0cadf-598a-11f1-a868-f201d42a48f4', 'icp_number', '京ICP备2026000001号'), ('d1d0cb5c-598a-11f1-a868-f201d42a48f4', 'contact_email', 'support@aiflow.com'), ('d1d0cbf8-598a-11f1-a868-f201d42a48f4', 'contact_phone', '400-000-0000'); -- ============================================================ -- 初始化默认资产分类 -- ============================================================ INSERT IGNORE INTO asset_categories (id, name, type, icon, color, is_default) VALUES ('cat-file', '文件', 'file', 'file', '#4A90D9', 1), ('cat-novel', '小说', 'novel', 'book', '#7B68EE', 1), ('cat-image', '图片', 'image', 'image', '#50C878', 1), ('cat-video', '视频', 'video', 'video', '#FF6347', 1), ('cat-audio', '音频', 'audio', 'audio', '#FFD700', 1), ('cat-custom', '自定义', 'custom', 'folder', '#A9A9A9', 1); -- ============================================================ -- 初始化默认风控规则 -- ============================================================ INSERT IGNORE INTO risk_rules (id, name, type, threshold, duration, is_enabled) VALUES ('risk-rate-limit', 'API调用频率限制', 'rate_limit', 60, 60, 1), ('risk-token-limit', 'Token日消耗上限', 'rate_limit', 1000000, 86400, 1), ('risk-alert', '异常调用告警', 'alert', 1000, 3600, 1); -- ============================================================ -- 模型供应商 / 模型 初始化(已移除自动 seeding) -- ------------------------------------------------------------ -- 说明:默认供应商(DeepSeek/OpenAI/通义千问/SiliconFlow)与默认模型由用户在 -- 后台「大模型库」中自行维护,不再通过迁移脚本强制写入。此前每次容器重启都会 -- 因 INSERT IGNORE 把已删除的默认供应商/模型重新复活,导致用户需反复手动清理。 -- 现仅保留数据表结构(由其他迁移负责),种子数据交由用户管理,重启不再复活。 -- ============================================================ -- ============================================================ -- 初始化会员套餐 -- ============================================================ INSERT IGNORE INTO membership_plans (id, name, level, duration_type, price, daily_free_tokens, features, free_app_ids, free_model_ids, is_active) VALUES ('plan-free', 'Free', 0, 'month', 0.00, 5000, '["基础AI对话", "知识库1GB", "每日5000免费Token"]', NULL, NULL, 1), ('plan-pro', 'Pro', 2, 'month', 99.00, 50000, '["高级AI对话", "知识库10GB", "每日50000免费Token", "专属模型", "会员免费应用"]', NULL, NULL, 1), ('plan-enterprise', 'Enterprise', 3, 'month', 299.00, 200000, '["无限AI对话", "知识库100GB", "每日200000免费Token", "全部专属模型", "全部会员免费应用", "API密钥管理"]', NULL, NULL, 1); -- ============================================================ -- 初始化官方市场应用 -- ============================================================ -- 注意:market_apps 不再在此自动播种。原因:run.sh 每次重启都会重跑全部迁移脚本, -- 原 `WHERE (SELECT COUNT(*) FROM market_apps) = 0` 逻辑会在"用户删空技能市场"后 -- 于重启时把官方应用重新插回(即用户反馈的"删除的技能又复活")。 -- 现在完全交由用户在后台「技能市场」维护,重启不再复活。 -- 如需全新库预置官方应用,请由管理员在后台手动添加。 -- ============================================================ -- 初始化广告Banner -- ============================================================ INSERT IGNORE INTO ad_banners (id, title, image_url, link_app_id, link_app_name, sort_order, click_count, status) VALUES ('ad-001', '智能客服Agent - 零代码搭建', '', 'app-001', '智能客服Agent', 1, 0, 'active'), ('ad-002', '数据分析工具箱 - 让数据说话', '', 'app-002', '数据分析工具箱', 2, 0, 'active'), ('ad-003', 'PPT生成器 - 一键生成精美演示', '', 'app-005', 'PPT生成器', 3, 0, 'active'), ('ad-004', 'MCP数据库连接器 - 无缝对接', '', 'app-003', 'MCP数据库连接器', 4, 0, 'active');