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

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions