Skip to content

runtime(standalone-stack): detectDriverFromUrl()libsql:// 抛「Unsupported database URL scheme」—— os migrate 因此在 CLI 已能启动的同一个 URL 上硬失败;同文件 docstring 仍称 driver-turso「ships separately in the Cloud distribution」 #5820

Description

@baozhoutao

发现于 #5602 的实施(PR #5819,domain:cli 车道)。落点在 packages/runtime,不属该单文件面,故另开。

现状

packages/runtime/src/standalone-stack.ts:

为什么现在值得记

PR #5819 落地后,CLI 的 os serve / os start 路径libsql:// 构造 TursoDriver(可选包 + 动态 import)。但 os migrate 走的是另一条:packages/cli/src/utils/schema-migrate.ts:181createStandaloneStack() 启动,utils/migrate-occupancy-gate.ts:25 也调 resolveStandaloneDatabase() —— 两者都要过 detectDriverFromUrl()。于是同一个 OS_DATABASE_URL=libsql://…:

  • os start → 正常启动(装了 driver 包时);
  • os migrateUnsupported database URL scheme

失败是响亮的(不是静默回退 SQLite),所以不是数据错位类,但对操作者是一条走不完的路径,也是新的两处口径分叉 —— 正是 #5602 记的那种。

可能的处置(未裁)

  1. detectDriverFromUrl() 也识别 libsql:// / *.turso.io,并沿用 CLI 侧同一形态(可选包 + 动态 import + 响亮缺包),DefaultDatasourcePlugin 的 host-factory 接缝已经是为此存在的;
  2. 或明确 standalone stack 支持 libSQL,那就同时删掉 TURSO_DATABASE_URL 这个 URL 来源(读得进认不出的组合无论如何都该消失),并把 docstring 改成真话。

无论哪条,ships separately in the Cloud distribution 那句都要改。

⚠️ 未认领,留给 PM 分诊(落点 packages/runtime,与 #5602 的 CLI 车道不同)。


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions