016_create_audio_synthesis_table.sql 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. -- 迁移文件: 016_create_audio_synthesis_table.sql
  2. -- 描述: 创建语音合成记录表
  3. -- 需求: 5.1, 5.5, 5.6
  4. -- ============================================
  5. -- 正向迁移: 创建表和索引
  6. -- ============================================
  7. -- 创建audio_synthesis表
  8. CREATE TABLE IF NOT EXISTS audio_synthesis (
  9. id SERIAL PRIMARY KEY,
  10. user_id VARCHAR(50) NOT NULL,
  11. model VARCHAR(100) NOT NULL,
  12. voice VARCHAR(100) NOT NULL,
  13. text TEXT NOT NULL,
  14. audio_url VARCHAR(500) NOT NULL,
  15. duration NUMERIC(10, 2),
  16. format VARCHAR(20),
  17. characters INTEGER,
  18. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  19. CONSTRAINT fk_audio_synthesis_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
  20. );
  21. -- 添加表注释
  22. COMMENT ON TABLE audio_synthesis IS '语音合成记录表';
  23. COMMENT ON COLUMN audio_synthesis.id IS '主键ID';
  24. COMMENT ON COLUMN audio_synthesis.user_id IS '用户ID(外键关联users表)';
  25. COMMENT ON COLUMN audio_synthesis.model IS 'TTS模型名称';
  26. COMMENT ON COLUMN audio_synthesis.voice IS '音色ID';
  27. COMMENT ON COLUMN audio_synthesis.text IS '合成文本内容';
  28. COMMENT ON COLUMN audio_synthesis.audio_url IS '音频文件OSS地址';
  29. COMMENT ON COLUMN audio_synthesis.duration IS '音频时长(秒)';
  30. COMMENT ON COLUMN audio_synthesis.format IS '音频格式(mp3/wav/pcm)';
  31. COMMENT ON COLUMN audio_synthesis.characters IS '文本字符数';
  32. COMMENT ON COLUMN audio_synthesis.created_at IS '创建时间';
  33. -- 创建索引(优化查询性能)
  34. CREATE INDEX IF NOT EXISTS idx_audio_synthesis_user_id ON audio_synthesis(user_id);
  35. CREATE INDEX IF NOT EXISTS idx_audio_synthesis_created_at ON audio_synthesis(created_at DESC);
  36. -- ============================================
  37. -- 回滚迁移: 删除表和索引
  38. -- ============================================
  39. -- DROP INDEX IF EXISTS idx_audio_synthesis_created_at;
  40. -- DROP INDEX IF EXISTS idx_audio_synthesis_user_id;
  41. -- DROP TABLE IF EXISTS audio_synthesis;