feat(db): 0004 媒体域——assets/usages 双唯一

media_assets 双唯一 UNIQUE(site_id, source_url) / UNIQUE(site_id, public_path)
+ status 四值 enum + source_id 可空;media_usages 复合主键
(media_asset_id, content_revision_id, field_path),无独立 id/时间戳(spec §5.5)。

vitest fileParallelism: false——不可变表清场 DISABLE/ENABLE TRIGGER 是库级 DDL,
与并行文件的不可变断言竞态(实测 media 清场窗口内 content 断言偶发放行);
串行执行消除竞态,套件仅数秒。

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-10-20 20:02:57 +08:00
parent cb959c905d
commit 1cc0dcc57f
6 changed files with 1955 additions and 1 deletions
+5
View File
@@ -3,5 +3,10 @@ export default defineConfig({
test: {
include: ['tests/**/*.test.ts', 'packages/*/test/**/*.test.ts', 'apps/*/test/**/*.test.ts'],
testTimeout: 30000,
// 集成测试共库且清场会做全局态变更(不可变表 DISABLE/ENABLE TRIGGER 是库级 DDL,
// 对所有会话可见):文件级并行时 A 文件清场窗口会与 B 文件的不可变断言竞态(实测
// db.media 清场 disable content_revisions_immutable 期间,db.content 恰好断言该触发器
// → UPDATE 意外放行)。串行执行文件消除该竞态;套件仅数秒,并行无收益。
fileParallelism: false,
},
})