发现于 #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:181 经 createStandaloneStack() 启动,utils/migrate-occupancy-gate.ts:25 也调 resolveStandaloneDatabase() —— 两者都要过 detectDriverFromUrl()。于是同一个 OS_DATABASE_URL=libsql://…:
os start → 正常启动(装了 driver 包时);
os migrate → Unsupported database URL scheme。
失败是响亮的(不是静默回退 SQLite),所以不是数据错位类,但对操作者是一条走不完的路径,也是新的两处口径分叉 —— 正是 #5602 记的那种。
可能的处置(未裁)
- 让
detectDriverFromUrl() 也识别 libsql:// / *.turso.io,并沿用 CLI 侧同一形态(可选包 + 动态 import + 响亮缺包),DefaultDatasourcePlugin 的 host-factory 接缝已经是为此存在的;
- 或明确 standalone stack 不支持 libSQL,那就同时删掉
TURSO_DATABASE_URL 这个 URL 来源(读得进认不出的组合无论如何都该消失),并把 docstring 改成真话。
无论哪条,ships separately in the Cloud distribution 那句都要改。
⚠️ 未认领,留给 PM 分诊(落点 packages/runtime,与 #5602 的 CLI 车道不同)。
Generated by Claude Code
发现于 #5602 的实施(PR #5819,
domain:cli车道)。落点在packages/runtime,不属该单文件面,故另开。现状
packages/runtime/src/standalone-stack.ts:detectDriverFromUrl()(约 :147)对libsql://不认,落到末尾的 throw:[StandaloneStack] Unsupported database URL scheme: libsql://… . Supported schemes: memory://, postgres://, pg://, mongodb://, mongodb+srv://, file:resolveDatabaseUrl()(约 :215)却把process.env.TURSO_DATABASE_URL列为 URL 来源之一 —— 即「读得进来、认不出去」:设了TURSO_DATABASE_URL=libsql://…的宿主拿到的是上面那条 throw。@objectstack/driver-turso「ships separately in the ObjectStack Cloud distribution」。这句在 driver-turso 住在闭源 cloud 仓,却是开源 runtime 点名偏好的默认 driver — 建议把核心迁回本仓 #4645(driver 迁回本仓packages/drivers/driver-turso)之后已不成立 —— 与 feat(drivers): driver-turso 迁回本仓公开发布,五个 IDataDriver 统一收进 packages/drivers/ (#4645 Phase A) #5618 Phase A 修掉的那批同类失真说法是同一族。为什么现在值得记
PR #5819 落地后,CLI 的
os serve/os start路径能从libsql://构造 TursoDriver(可选包 + 动态 import)。但os migrate走的是另一条:packages/cli/src/utils/schema-migrate.ts:181经createStandaloneStack()启动,utils/migrate-occupancy-gate.ts:25也调resolveStandaloneDatabase()—— 两者都要过detectDriverFromUrl()。于是同一个OS_DATABASE_URL=libsql://…:os start→ 正常启动(装了 driver 包时);os migrate→Unsupported database URL scheme。失败是响亮的(不是静默回退 SQLite),所以不是数据错位类,但对操作者是一条走不完的路径,也是新的两处口径分叉 —— 正是 #5602 记的那种。
可能的处置(未裁)
detectDriverFromUrl()也识别libsql:///*.turso.io,并沿用 CLI 侧同一形态(可选包 + 动态 import + 响亮缺包),DefaultDatasourcePlugin的 host-factory 接缝已经是为此存在的;TURSO_DATABASE_URL这个 URL 来源(读得进认不出的组合无论如何都该消失),并把 docstring 改成真话。无论哪条,
ships separately in the Cloud distribution那句都要改。packages/runtime,与 #5602 的 CLI 车道不同)。Generated by Claude Code