Skip to content

Commit 0e9c98d

Browse files
committed
perf(storage): P2-14 v20 存量迁移——旧会话内嵌 segments 物理搬迁至独立表
1 parent 991246f commit 0e9c98d

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

‎client/src/lib/storage/database.ts‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,21 @@ export class EntropyDecreaseDatabase extends Dexie {
296296
this.version(19).stores({
297297
windowCaptureSegments: 'id, sessionId, timestamp',
298298
});
299+
300+
// P2-14 存量迁移(用户数据量小,直接搬迁):将旧会话内嵌 segments
301+
// 物理搬迁至 windowCaptureSegments 独立表并清空内嵌数组,彻底瘦身
302+
// windowCaptures 记录。windowCaptures 不参与 CRDT 同步,迁移无跨端副作用。
303+
this.version(20).stores({}).upgrade(async (tx) => {
304+
const sessions = await tx.table('windowCaptures').toArray();
305+
for (const session of sessions) {
306+
const segs = (session as { segments?: unknown[] }).segments;
307+
if (Array.isArray(segs) && segs.length > 0) {
308+
const rows = segs.map((s) => ({ ...(s as object), sessionId: session.id }));
309+
await tx.table('windowCaptureSegments').bulkPut(rows);
310+
await tx.table('windowCaptures').update(session.id, { segments: [] });
311+
}
312+
}
313+
});
299314
}
300315
}
301316

0 commit comments

Comments
 (0)