- 迁移 043 一次到位:runtime_instance/environment_binding 并入 browser_env(账号即环境)、 credential_reference 并入 social_account、work_source/metric_plan 并入 creator_work、 sync 租约并入 creator_collection_checkpoint(kind='sync')、audit_event 瘦列、 creator_settings 去转写列、TRUNCATE 账号域(竞品采集数据无损保留) - 统一迁移 runner:environment.Open 串起 001 账号基座 + hub 链 + 038 creator 版本回填 (v+1000) + creator 1017-1042 + 043;account/creator Open 不再迁移 - 三域 store SQL 全量适配:CreateBoundEnv 就绪门禁、SetRuntimeCleanupPending fence 语义(未知代 MissingRuntimeID 允许登记并释放活跃实例)、metric_plan 列并入 work、 checkpoint sync 租约、deletion 链路重写 - api 适配:envView 去 runtime_instance_id、audit filter 去任务列、browser_env 单表查询 - 测试:迁移 043 形态探针、迁移不可变映射新路径、legacy 迁移重放子测试重写、 fence/出口生命周期/单来源 upsert 语义覆盖;CREATORHUB_POSTGRES_TEST_URL 全绿, environment 70%/creator 67.5% 覆盖率,tsc 通过
16 lines
734 B
SQL
16 lines
734 B
SQL
CREATE TABLE IF NOT EXISTS creator_work_source (
|
|
work_id text NOT NULL REFERENCES creator_work(id) ON DELETE CASCADE,
|
|
platform text NOT NULL CHECK (platform IN ('douyin', 'xiaohongshu')),
|
|
source_type text NOT NULL CHECK (source_type IN ('owned', 'competitor')),
|
|
source_id text NOT NULL,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
PRIMARY KEY (work_id, source_type, source_id)
|
|
);
|
|
CREATE INDEX IF NOT EXISTS creator_work_source_lookup_idx
|
|
ON creator_work_source (platform, source_type, source_id, work_id);
|
|
|
|
INSERT INTO creator_work_source (work_id, platform, source_type, source_id)
|
|
SELECT id, platform, source_type, source_id
|
|
FROM creator_work
|
|
ON CONFLICT (work_id, source_type, source_id) DO NOTHING;
|