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

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions