## 完成的功能 - 用户登录/注册(邮箱 + Google OAuth) - 初始问题引导流程(4 个问题) - 智能体自动生成(根据用户回答) - 智能体列表页面 ## 新增文件 - 登录/注册页面和组件 - Onboarding 页面和组件 - 智能体列表页面 - 智能体 API 端点 - 智能体 Prompt 设计 ## 数据库迁移 - onboarding_fix 迁移(users.has_completed_onboarding) ## 测试 - 登录/注册:100% 通过 - Onboarding:85% 通过 - 智能体功能:85% 通过 Co-Authored-By: Claude <noreply@anthropic.com>
91 lines
3.3 KiB
SQL
91 lines
3.3 KiB
SQL
-- ============================================================================
|
|
-- Echo (回声) - Schema 修复迁移脚本
|
|
-- 版本: 202601120002
|
|
-- 创建日期: 2026-01-12
|
|
-- 修复内容:
|
|
-- 1. user_stamps 表外键添加 ON DELETE CASCADE
|
|
-- 2. growth_tags 表添加 UPDATE 策略
|
|
-- 3. achievements 表添加 UPDATE 策略
|
|
-- 4. daily_stats 表添加 INSERT 策略
|
|
-- 5. growth_tags 表添加 behavior_tags GIN 索引
|
|
-- ============================================================================
|
|
|
|
-- ============================================================================
|
|
-- 修复 1: user_stamps 表外键添加 ON DELETE CASCADE
|
|
-- ============================================================================
|
|
|
|
ALTER TABLE user_stamps DROP CONSTRAINT user_stamps_stamp_def_id_fkey;
|
|
ALTER TABLE user_stamps ADD CONSTRAINT user_stamps_stamp_def_id_fkey
|
|
FOREIGN KEY (stamp_def_id) REFERENCES stamp_definitions(id) ON DELETE CASCADE;
|
|
|
|
-- ============================================================================
|
|
-- 修复 2: growth_tags 表添加 UPDATE 策略
|
|
-- ============================================================================
|
|
|
|
-- 检查是否已存在 UPDATE 策略
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_policies
|
|
WHERE tablename = 'growth_tags'
|
|
AND policyname = 'System can update growth tags'
|
|
) THEN
|
|
CREATE POLICY "System can update growth tags" ON growth_tags
|
|
FOR UPDATE USING (auth.role() = 'service_role');
|
|
END IF;
|
|
END $$;
|
|
|
|
-- ============================================================================
|
|
-- 修复 3: achievements 表添加 UPDATE 策略
|
|
-- ============================================================================
|
|
|
|
-- 检查是否已存在 UPDATE 策略
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_policies
|
|
WHERE tablename = 'achievements'
|
|
AND policyname = 'System can update achievements'
|
|
) THEN
|
|
CREATE POLICY "System can update achievements" ON achievements
|
|
FOR UPDATE USING (auth.role() = 'service_role');
|
|
END IF;
|
|
END $$;
|
|
|
|
-- ============================================================================
|
|
-- 修复 4: daily_stats 表添加 INSERT 策略
|
|
-- ============================================================================
|
|
|
|
-- 检查是否已存在 INSERT 策略
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_policies
|
|
WHERE tablename = 'daily_stats'
|
|
AND policyname = 'System can insert daily stats'
|
|
) THEN
|
|
CREATE POLICY "System can insert daily stats" ON daily_stats
|
|
FOR INSERT WITH CHECK (auth.role() = 'service_role');
|
|
END IF;
|
|
END $$;
|
|
|
|
-- ============================================================================
|
|
-- 修复 5: growth_tags 表添加 behavior_tags GIN 索引
|
|
-- ============================================================================
|
|
|
|
-- 检查索引是否已存在
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_indexes
|
|
WHERE tablename = 'growth_tags'
|
|
AND indexname = 'idx_growth_tags_behavior'
|
|
) THEN
|
|
CREATE INDEX idx_growth_tags_behavior ON growth_tags USING GIN (behavior_tags);
|
|
END IF;
|
|
END $$;
|
|
|
|
-- ============================================================================
|
|
-- 修复完成
|
|
-- ============================================================================
|