019_create_system_voice_table.sql 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. -- 迁移文件: 019_create_system_voice_table.sql
  2. -- 描述: 创建系统预置音色表
  3. -- 需求: 5.4, 5.5, 5.6
  4. -- ============================================
  5. -- 正向迁移: 创建表和索引
  6. -- ============================================
  7. -- 创建system_voice表
  8. CREATE TABLE IF NOT EXISTS system_voice (
  9. id SERIAL PRIMARY KEY,
  10. voice_id VARCHAR(100) NOT NULL UNIQUE,
  11. name VARCHAR(50) NOT NULL,
  12. trait VARCHAR(100),
  13. age VARCHAR(20),
  14. category VARCHAR(50),
  15. languages JSONB DEFAULT '[]',
  16. models JSONB DEFAULT '[]',
  17. ssml_support BOOLEAN DEFAULT FALSE,
  18. instruct_support BOOLEAN DEFAULT FALSE,
  19. timestamp_support BOOLEAN DEFAULT FALSE,
  20. is_active BOOLEAN DEFAULT TRUE,
  21. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  22. );
  23. -- 添加表注释
  24. COMMENT ON TABLE system_voice IS '系统预置音色表';
  25. COMMENT ON COLUMN system_voice.id IS '主键ID';
  26. COMMENT ON COLUMN system_voice.voice_id IS '音色ID';
  27. COMMENT ON COLUMN system_voice.name IS '音色名称';
  28. COMMENT ON COLUMN system_voice.trait IS '音色特质描述';
  29. COMMENT ON COLUMN system_voice.age IS '年龄段(青年/中年/老年)';
  30. COMMENT ON COLUMN system_voice.category IS '场景分类(通用/客服/新闻/有声书等)';
  31. COMMENT ON COLUMN system_voice.languages IS '支持的语言列表';
  32. COMMENT ON COLUMN system_voice.models IS '支持的TTS模型列表';
  33. COMMENT ON COLUMN system_voice.ssml_support IS '是否支持SSML';
  34. COMMENT ON COLUMN system_voice.instruct_support IS '是否支持指令控制';
  35. COMMENT ON COLUMN system_voice.timestamp_support IS '是否支持时间戳';
  36. COMMENT ON COLUMN system_voice.is_active IS '是否启用';
  37. COMMENT ON COLUMN system_voice.created_at IS '创建时间';
  38. -- 创建索引(优化查询性能)
  39. CREATE INDEX IF NOT EXISTS idx_system_voice_voice_id ON system_voice(voice_id);
  40. CREATE INDEX IF NOT EXISTS idx_system_voice_category ON system_voice(category);
  41. CREATE INDEX IF NOT EXISTS idx_system_voice_is_active ON system_voice(is_active);
  42. -- ============================================
  43. -- 回滚迁移: 删除表和索引
  44. -- ============================================
  45. -- DROP INDEX IF EXISTS idx_system_voice_is_active;
  46. -- DROP INDEX IF EXISTS idx_system_voice_category;
  47. -- DROP INDEX IF EXISTS idx_system_voice_voice_id;
  48. -- DROP TABLE IF EXISTS system_voice;