57 lines
2.4 KiB
SQL
57 lines
2.4 KiB
SQL
-- Migration: 063_add_sora_client_tables
|
|
-- Sora 客户端功能所需的数据库变更:
|
|
-- 1. 新增 sora_generations 表:记录 Sora 客户端 UI 的生成历史
|
|
-- 2. users 表新增存储配额字段
|
|
-- 3. groups 表新增存储配额字段
|
|
|
|
-- ============================================================
|
|
-- 1. sora_generations 表(生成记录)
|
|
-- ============================================================
|
|
CREATE TABLE IF NOT EXISTS sora_generations (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
api_key_id BIGINT,
|
|
|
|
-- 生成参数
|
|
model VARCHAR(64) NOT NULL,
|
|
prompt TEXT NOT NULL DEFAULT '',
|
|
media_type VARCHAR(16) NOT NULL DEFAULT 'video', -- video / image
|
|
|
|
-- 结果
|
|
status VARCHAR(16) NOT NULL DEFAULT 'pending', -- pending / generating / completed / failed / cancelled
|
|
media_url TEXT NOT NULL DEFAULT '',
|
|
media_urls JSONB, -- 多图时的 URL 数组
|
|
file_size_bytes BIGINT NOT NULL DEFAULT 0,
|
|
storage_type VARCHAR(16) NOT NULL DEFAULT 'none', -- s3 / local / upstream / none
|
|
s3_object_keys JSONB, -- S3 object key 数组
|
|
|
|
-- 上游信息
|
|
upstream_task_id VARCHAR(128) NOT NULL DEFAULT '',
|
|
error_message TEXT NOT NULL DEFAULT '',
|
|
|
|
-- 时间
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
completed_at TIMESTAMPTZ
|
|
);
|
|
|
|
-- 按用户+时间查询(作品库列表、历史记录)
|
|
CREATE INDEX IF NOT EXISTS idx_sora_gen_user_created
|
|
ON sora_generations(user_id, created_at DESC);
|
|
|
|
-- 按用户+状态查询(恢复进行中任务)
|
|
CREATE INDEX IF NOT EXISTS idx_sora_gen_user_status
|
|
ON sora_generations(user_id, status);
|
|
|
|
-- ============================================================
|
|
-- 2. users 表新增 Sora 存储配额字段
|
|
-- ============================================================
|
|
ALTER TABLE users
|
|
ADD COLUMN IF NOT EXISTS sora_storage_quota_bytes BIGINT NOT NULL DEFAULT 0,
|
|
ADD COLUMN IF NOT EXISTS sora_storage_used_bytes BIGINT NOT NULL DEFAULT 0;
|
|
|
|
-- ============================================================
|
|
-- 3. groups 表新增 Sora 存储配额字段
|
|
-- ============================================================
|
|
ALTER TABLE groups
|
|
ADD COLUMN IF NOT EXISTS sora_storage_quota_bytes BIGINT NOT NULL DEFAULT 0;
|