Files
2026-06-30 15:07:31 +08:00

295 lines
6.0 KiB
SQL

-- 最小初始表结构,与 backend-node 业务代码对齐(若无 backend-node/migrations 则使用本文件)
CREATE TABLE IF NOT EXISTS dramas (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL DEFAULT '',
description TEXT,
genre TEXT,
style TEXT DEFAULT 'realistic',
tags TEXT,
thumbnail TEXT,
total_episodes INTEGER DEFAULT 1,
total_duration INTEGER DEFAULT 0,
status TEXT DEFAULT 'draft',
metadata TEXT,
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS episodes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
drama_id INTEGER NOT NULL,
episode_number INTEGER DEFAULT 0,
title TEXT DEFAULT '',
script_content TEXT,
description TEXT,
duration INTEGER DEFAULT 0,
video_url TEXT,
thumbnail TEXT,
status TEXT DEFAULT 'draft',
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS storyboards (
id INTEGER PRIMARY KEY AUTOINCREMENT,
episode_id INTEGER NOT NULL,
scene_id INTEGER,
storyboard_number INTEGER DEFAULT 0,
title TEXT,
description TEXT,
location TEXT,
time TEXT,
duration REAL,
dialogue TEXT,
action TEXT,
atmosphere TEXT,
image_prompt TEXT,
video_prompt TEXT,
characters TEXT,
shot_type TEXT,
angle TEXT,
movement TEXT,
video_url TEXT,
status TEXT DEFAULT 'draft',
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS characters (
id INTEGER PRIMARY KEY AUTOINCREMENT,
drama_id INTEGER NOT NULL,
name TEXT NOT NULL DEFAULT '',
role TEXT,
description TEXT,
personality TEXT,
appearance TEXT,
image_url TEXT,
local_path TEXT,
voice_style TEXT,
sort_order INTEGER DEFAULT 0,
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS episode_characters (
episode_id INTEGER NOT NULL,
character_id INTEGER NOT NULL,
PRIMARY KEY (episode_id, character_id)
);
CREATE TABLE IF NOT EXISTS scenes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
drama_id INTEGER NOT NULL,
episode_id INTEGER,
location TEXT,
time TEXT,
prompt TEXT,
image_url TEXT,
local_path TEXT,
storyboard_count INTEGER DEFAULT 0,
status TEXT DEFAULT 'draft',
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS props (
id INTEGER PRIMARY KEY AUTOINCREMENT,
drama_id INTEGER NOT NULL,
name TEXT NOT NULL DEFAULT '',
type TEXT,
description TEXT,
prompt TEXT,
image_url TEXT,
local_path TEXT,
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS storyboard_props (
storyboard_id INTEGER NOT NULL,
prop_id INTEGER NOT NULL,
PRIMARY KEY (storyboard_id, prop_id)
);
CREATE TABLE IF NOT EXISTS frame_prompts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
storyboard_id INTEGER NOT NULL,
frame_type TEXT,
prompt TEXT,
description TEXT,
layout TEXT,
created_at TEXT,
updated_at TEXT
);
CREATE TABLE IF NOT EXISTS ai_service_configs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
service_type TEXT NOT NULL,
provider TEXT DEFAULT '',
name TEXT DEFAULT '',
base_url TEXT DEFAULT '',
api_key TEXT,
model TEXT,
default_model TEXT,
endpoint TEXT,
query_endpoint TEXT,
priority INTEGER DEFAULT 0,
is_default INTEGER DEFAULT 0,
is_active INTEGER DEFAULT 1,
settings TEXT,
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS async_tasks (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
status TEXT NOT NULL,
progress INTEGER DEFAULT 0,
message TEXT,
resource_id TEXT,
created_at TEXT,
updated_at TEXT,
completed_at TEXT,
error TEXT,
result TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS image_generations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
storyboard_id INTEGER,
drama_id INTEGER,
scene_id INTEGER,
character_id INTEGER,
provider TEXT,
prompt TEXT,
negative_prompt TEXT,
model TEXT,
frame_type TEXT,
reference_images TEXT,
size TEXT,
quality TEXT,
image_url TEXT,
local_path TEXT,
status TEXT,
task_id TEXT,
completed_at TEXT,
error_msg TEXT,
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS video_generations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
drama_id INTEGER,
storyboard_id INTEGER,
provider TEXT,
prompt TEXT,
model TEXT,
duration REAL,
aspect_ratio TEXT,
image_url TEXT,
first_frame_url TEXT,
last_frame_url TEXT,
reference_image_urls TEXT,
video_url TEXT,
local_path TEXT,
status TEXT,
task_id TEXT,
scene_id INTEGER,
completed_at TEXT,
error_msg TEXT,
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS video_merges (
id INTEGER PRIMARY KEY AUTOINCREMENT,
episode_id INTEGER,
drama_id INTEGER,
title TEXT,
provider TEXT,
model TEXT,
status TEXT,
scenes TEXT,
task_id TEXT,
created_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS character_libraries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL DEFAULT '',
category TEXT,
image_url TEXT,
local_path TEXT,
description TEXT,
tags TEXT,
source_type TEXT,
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS scene_libraries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
location TEXT NOT NULL DEFAULT '',
time TEXT,
prompt TEXT,
description TEXT,
image_url TEXT,
local_path TEXT,
category TEXT,
tags TEXT,
source_type TEXT,
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS prop_libraries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL DEFAULT '',
description TEXT,
prompt TEXT,
image_url TEXT,
local_path TEXT,
category TEXT,
tags TEXT,
source_type TEXT,
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);
CREATE TABLE IF NOT EXISTS assets (
id INTEGER PRIMARY KEY AUTOINCREMENT,
drama_id INTEGER,
name TEXT,
type TEXT,
category TEXT,
url TEXT,
local_path TEXT,
file_size INTEGER,
mime_type TEXT,
width INTEGER,
height INTEGER,
duration REAL,
image_gen_id INTEGER,
video_gen_id INTEGER,
created_at TEXT,
updated_at TEXT,
deleted_at TEXT
);