This commit is contained in:
@@ -83,6 +83,14 @@
|
||||
- 验证:`spacetime --root-dir server-rs/.spacetimedb/local list --server http://127.0.0.1:3101` 能看到目标库;重新发布不再使用无权限的全局 identity。
|
||||
- 关联:`scripts/dev-rust-stack.sh`、`docs/technical/SPACETIMEDB_START_SH_PUBLISH_403_IDENTITY_FIX_2026-04-26.md`。
|
||||
|
||||
## `npm run dev` 本地 SpacetimeDB 401 / 403 可重置默认 local 身份
|
||||
|
||||
- 现象:`npm run dev` 启动本地开发栈时,SpacetimeDB 在登录、发布或预检查阶段返回 `401` / `403`,清理后仍像在使用旧 token 或旧本地库。
|
||||
- 原因:本机 `spacetime` CLI 保存的旧 token、默认 server、正在运行的 standalone 进程或默认 local 数据库与当前发布身份不一致。
|
||||
- 处理:确认只是本地测试库且数据可丢弃后,先查看并停止本地 `spacetimedb-standalone`,执行 `spacetime logout`,确认并设置 `spacetime server set-default local`,停 server 后用 `spacetime server clear -y` 清空默认本地库,再 `spacetime start`,另开终端执行 `spacetime login --server-issued-login local`,最后用 `spacetime publish --server local A` 或项目脚本重新发布。
|
||||
- 验证:`spacetime server list` 默认目标为 local;重新登录后发布不再返回 `401` / `403`;`npm run dev` 可以完成 SpacetimeDB publish 并继续启动 `api-server`。
|
||||
- 关联:`docs/technical/SPACETIMEDB_START_SH_PUBLISH_403_IDENTITY_FIX_2026-04-26.md`、`scripts/dev-rust-stack.sh`。
|
||||
|
||||
## 本地 SpacetimeDB 联调可按阶段跳过宿主或发布
|
||||
|
||||
- 现象:本地 `npm run dev` 因 `3101` 已占用、重复发布 SpacetimeDB wasm 编译太慢,或只想检查 `spacetime-module` 语法而被完整联调链路拖慢。
|
||||
|
||||
@@ -60,6 +60,39 @@ spacetime --root-dir server-rs/.spacetimedb/local list --server http://127.0.0.1
|
||||
|
||||
如果裸 `spacetime login show` 的身份与 `--root-dir server-rs/.spacetimedb/local login show` 不一致,而目标库只出现在本地 root 的 `list` 结果中,说明不能使用裸 `spacetime publish`。应通过 `npm run dev:rust` 或显式追加 `--root-dir=server-rs/.spacetimedb/local` 重新发布。
|
||||
|
||||
### 4.1 `npm run dev` 本地 401 / 403 快速恢复
|
||||
|
||||
如果 `npm run dev` 启动本地开发栈时,SpacetimeDB 在登录、发布或预检查阶段返回 `401` / `403`,且确认本地测试库可以丢弃,可以按下面顺序重置本机默认 local server、旧 CLI token 和本地数据库:
|
||||
|
||||
```powershell
|
||||
# 1. 先停掉正在跑的本地 server
|
||||
Get-Process spacetimedb-standalone, spacetime -ErrorAction SilentlyContinue
|
||||
|
||||
# 如确认只是本地测试 server,可结束它
|
||||
Stop-Process -Name spacetimedb-standalone -ErrorAction SilentlyContinue
|
||||
|
||||
# 2. 清掉 CLI 保存的旧 token
|
||||
spacetime logout
|
||||
|
||||
# 3. 确认默认目标是本地,或发布时显式指定 local
|
||||
spacetime server list
|
||||
spacetime server set-default local
|
||||
|
||||
# 4. 如要彻底清空默认本地库,停 server 后再清
|
||||
spacetime server clear -y
|
||||
|
||||
# 5. 重新启动默认本地 server
|
||||
spacetime start
|
||||
|
||||
# 6. 另开一个终端,向当前 local server 重新拿本地 token
|
||||
spacetime login --server-issued-login local
|
||||
|
||||
# 7. 再发布
|
||||
spacetime publish --server local A
|
||||
```
|
||||
|
||||
这条流程适合“本地 `npm run dev` 因旧 token、旧本地库或 CLI 默认 server 混乱导致无法继续”的场景。若当前目标库需要保留数据,不要执行 `spacetime server clear -y`,先按上一段对比 `login show`、`--root-dir` 和数据库所有者身份。
|
||||
|
||||
如果目标是本地部署库,且允许清空本地数据:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user