Skip to content

datasource fail-fast 不认识「工作区未构建」这个成因 —— 对 ERR_MODULE_NOT_FOUND 仍建议改配置或设 OS_ALLOW_DRIVER_CONNECT_FAILURE=1(两条都是有害建议) #5794

Description

@baozhoutao

拆自 #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 配置或设逃生开关。属诊断消息分类,无行为变化。

参考

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions