拆自 #5726(方向 2,分诊当时裁定不作 rider、由 PM 转 services 车道);cli 车道 PM 立单,domain:* 标签待分诊座位补(落点 packages/services/service-datasource)。查重:OS_ALLOW_DRIVER_CONNECT_FAILURE 开放单仅 #5726 自身命中,无重复。
现象(#5726 实测,PR #5789 已消掉 CLI 侧放大器,本条现状未变)
在未构建的 worktree 里 boot,packages/services/service-datasource/src/datasource-connection-service.ts:687-701 的 fail-fast 输出:
✗ datasource 'default': connect failed — Cannot find package '.../@objectstack/driver-sql/index.js' ...
Fix the datasource configuration, or set OS_ALLOW_DRIVER_CONNECT_FAILURE=1 to boot anyway
and serve errors until it is reachable.
对「driver dist 未构建」这个成因,两条建议都是错的:datasource 配置是好的;设 OS_ALLOW_DRIVER_CONNECT_FAILURE=1 只会让一个构建不完整的工作区「启动成功」然后对所有请求报错。正确修法(pnpm build)一句没提。这是把有害建议递到正要复现问题的人手里——本地 worktree 正是复现 CI 红的第一现场(CI 里 build 恒在前,永远跑不出这个形态)。
修法方向(#5726 正文原案)
connect 失败的底层原因是 ERR_MODULE_NOT_FOUND / Cannot find package '…/dist/…' 时,判定为「工作区未构建」,提示 pnpm build,⛔ 不再建议改 datasource 配置或设逃生开关。属诊断消息分类,无行为变化。
参考
拆自 #5726(方向 2,分诊当时裁定不作 rider、由 PM 转 services 车道);cli 车道 PM 立单,
domain:*标签待分诊座位补(落点packages/services/service-datasource)。查重:OS_ALLOW_DRIVER_CONNECT_FAILURE开放单仅 #5726 自身命中,无重复。现象(#5726 实测,PR #5789 已消掉 CLI 侧放大器,本条现状未变)
在未构建的 worktree 里 boot,
packages/services/service-datasource/src/datasource-connection-service.ts:687-701的 fail-fast 输出:对「driver dist 未构建」这个成因,两条建议都是错的:datasource 配置是好的;设
OS_ALLOW_DRIVER_CONNECT_FAILURE=1只会让一个构建不完整的工作区「启动成功」然后对所有请求报错。正确修法(pnpm build)一句没提。这是把有害建议递到正要复现问题的人手里——本地 worktree 正是复现 CI 红的第一现场(CI 里 build 恒在前,永远跑不出这个形态)。修法方向(#5726 正文原案)
connect 失败的底层原因是
ERR_MODULE_NOT_FOUND/Cannot find package '…/dist/…'时,判定为「工作区未构建」,提示pnpm build,⛔ 不再建议改 datasource 配置或设逃生开关。属诊断消息分类,无行为变化。参考
check-i18n-bundles把「CLI 没 build」报成 9 个包的 bundle 问题;一个前置条件 ≠ N 个内容问题是共同不变量)