Part of #5704(批次 3)。维护者 2026-08-06 裁决 Q1=C 的真迁半边(落档见 #5704 裁决评论):这 7 个文件名为 integration、实跑手写替身,名不副实,真迁有实际收益。
范围:7 个文件,真迁 @objectstack/driver-sql + better-sqlite3 :memory:
- packages/rest(3):export-integration、import-integration、import-job-integration
- packages/plugins/plugin-approvals(3):record-lock-multi-update.integration、record-lock-schedule-run.integration、status-mirror-cascade.integration
- packages/triggers/trigger-record-change(1):record-change-integration
以 git grep -l "makeMemoryDriver" packages/rest packages/plugins/plugin-approvals packages/triggers(对 origin/main)复核实际文件名 — survey 基线 a58c0b5,先复核前提。
做法
边界(⛔)
- ⛔ 不动 packages/objectql 与 packages/runtime 的任何文件(并行批次 2 正在其中改名);
- ⛔ 不动 undeclared-field-write-driver-split(Q2-B 裁定保留 driver-memory,批次 2 落注释);
- ⛔ 测试语义不缩水:迁移是换后端,不是删覆盖。
验收
- 7 个文件不再含手写 memory 形态 stub,真实 sqlite
:memory: 后端跑绿;
- 3 个包 vitest 全绿 + typecheck 过;
- PR body 含逐处语义分叉处置记录(零分叉也要写明「零分叉」);
- 测试行为不面向用户 →
skip-changeset 约定(label 由 PM 代打)。
Part of #5704(批次 3)。维护者 2026-08-06 裁决 Q1=C 的真迁半边(落档见 #5704 裁决评论):这 7 个文件名为 integration、实跑手写替身,名不副实,真迁有实际收益。
范围:7 个文件,真迁
@objectstack/driver-sql+ better-sqlite3:memory:以
git grep -l "makeMemoryDriver" packages/rest packages/plugins/plugin-approvals packages/triggers(对 origin/main)复核实际文件名 — survey 基线a58c0b5,先复核前提。做法
cli db clean、PR test(runtime,dogfood): 批次 0 —— 两个真依赖测试后端迁到 sqlite:memory:#5715 的makeDefaultDriver()同款):new SqlDriver({ client: 'better-sqlite3', connection: { filename: ':memory:' }, useNullAsDefault: true });@objectstack/driver-sql(workspace 协议;better-sqlite3 由 driver-sql 的 optionalDependency 提供 — test(runtime,dogfood): 批次 0 —— 两个真依赖测试后端迁到 sqlite:memory:#5715 实测);survey 已核无循环依赖(driver-sql 不依赖这三包);execute()(external 模式)— 参照 test(runtime,dogfood): 批次 0 —— 两个真依赖测试后端迁到 sqlite:memory:#5715 的处理;:memory:(#5499 重启条件 · memory 半边,维护者 2026-08-06 立项) #5704 风险声明的设计内收益);拿不准的列 open_questions 返回,⛔ 不要静默放松或删除断言 — 改写后的断言必须继续承载等价保真度。边界(⛔)
验收
:memory:后端跑绿;skip-changeset约定(label 由 PM 代打)。