Files
MuMuAINovel/backend/scripts/migrate_writing_styles_to_user_level.sql
T

37 lines
1.2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 迁移写作风格从项目级别到用户级别
-- 将 writing_styles 表的 project_id 字段改为 user_id
-- 步骤1: 添加新的 user_id 字段
ALTER TABLE writing_styles ADD COLUMN user_id VARCHAR(255);
-- 步骤2: 将现有数据从 project_id 映射到 user_id
-- 通过 projects 表关联,将项目的用户ID填充到风格的 user_id
UPDATE writing_styles ws
SET user_id = (
SELECT p.user_id
FROM projects p
WHERE p.id = ws.project_id
)
WHERE ws.project_id IS NOT NULL;
-- 步骤3: 添加外键约束
ALTER TABLE writing_styles
ADD CONSTRAINT fk_writing_styles_user
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE;
-- 步骤4: 删除旧的 project_id 外键约束
ALTER TABLE writing_styles DROP CONSTRAINT IF EXISTS writing_styles_project_id_fkey;
-- 步骤5: 删除 project_id 列
ALTER TABLE writing_styles DROP COLUMN project_id;
-- 步骤6: 更新注释
COMMENT ON COLUMN writing_styles.user_id IS '所属用户IDNULL表示全局预设风格)';
-- 验证迁移结果
SELECT
COUNT(*) as total_styles,
COUNT(user_id) as user_styles,
COUNT(*) FILTER (WHERE user_id IS NULL) as preset_styles
FROM writing_styles;