SpacetimeDB 2.13.0 常用 CLI 命令详解
SpacetimeDB 2.13.0 CLI 命令详解:init/build/publish、call/sql/subscribe、logs/describe/list/env、lock/unlock/rename/delete、server/version/generate/mcp/auth 全命令覆盖,逐参数说明并附 2026-10-23 实测真实回显(含 -y= 语法、配置层解析错乱、锁定库 403 等排障实录)。
SpacetimeDB 2.13.0 常用 CLI 命令详解
目标:完整覆盖
spacetimeCLI 2.13.0 的命令体系——发布(publish/init/build)、调用与查询(call/sql/subscribe)、观测(logs/describe/list/env)、生命周期(lock/unlock/rename/delete)、服务器与版本管理(server/version/login)——每条命令给出语法、参数表与真实执行回显(2026-10-23 实测照抄,失败样例同样保留)。命令背景与配置语义见《SpacetimeDB 2.13.0 配置参数详解》。
一、环境信息
| 项目 | 内容 |
|---|---|
| CLI 版本 | 2.13.0(spacetime --version → spacetimedb tool version 2.13.0; spacetimedb-lib version 2.13.0; rev: 08e1aba133671f9c631c6e70133a82faa0e7b283) |
| 操作系统 | Ubuntu 22.04 LTS(x86_64) |
| 目标服务器 | 本机 standalone 实例(昵称 local,http://127.0.0.1:3000) |
| 测试数据库 | quickstart(Rust quickstart 模板,含 person 表与 add/say_hello reducer,identity c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19) |
| 验证日期 | 2026-10-23 |
⚠️ 通用约定:本篇命令多带
--server local显式指定目标服务器。原因(实测踩坑):在项目目录内执行时 CLI 会读取spacetime.json/spacetime.local.json配置层——模板生成的spacetime.json里server = "maincloud"、spacetime.local.json里database = "quickstart-p4ue7",导致同名命令命中了maincloud或带随机后缀的库名(报错实录见 11.1)。脚本化操作建议始终显式-s+--no-config或在项目目录外执行。
⚠️ 通用提示:大量子命令带
WARNING: This command is UNSTABLE and subject to breaking changes.(UNSTABLE 标记),2.x 阶段这些命令的输出与参数仍可能变化,升级后应回归测试。
二、命令总览
spacetime --help 输出的完整命令清单(2.13.0):
| 分组 | 命令 | 用途 |
|---|---|---|
| 项目与发布 | init / build / publish / dev | 初始化项目 / 编译模块 / 发布数据库 / 开发模式 |
| 调用与查询 | call / sql / subscribe | 调 reducer(写)/ SQL 查询(读)/ 订阅推送 |
| 观测 | logs / describe / list / env | 模块日志 / schema 描述 / 库清单 / 环境变量 |
| 生命周期 | lock / unlock / rename / delete | 删除保护 / 改名 / 删除 |
| 连接管理 | login / logout / server | 登录身份 / 服务器配置 |
| 客户端生成 | generate | 生成 C#/TS/Rust/Unreal 客户端代码 |
| 服务端 | start / mcp / auth | 启动 standalone / MCP 服务 / SpacetimeAuth 管理 |
| 版本管理 | version | 多版本 install/use/upgrade/uninstall |
三、项目初始化与发布
3.1 spacetime init(初始化模块项目)
语法:spacetime init [OPTIONS] [PROJECT_NAME],关键选项:--lang <rust|csharp|typescript|cpp>、--server-only、--local(本地部署而非 Maincloud)、--non-interactive、-t/--template <ID|owner/repo|URL>。
实测(非交互环境直接跑会因登录提示失败):
$ spacetime init --lang rust quickstart
Initializing project from template...
You are not logged in to SpacetimeDB.
Error: IO error: not a terminal
Caused by:
not a terminal
加 --local --non-interactive 成功:
$ spacetime init --lang rust --local --non-interactive quickstart
Initializing project from template...
Setting up Rust server...
Warning: Git is not installed. You should install git using your package manager.
Project initialized successfully!
✓ Created quickstart/spacetime.json
✓ Created quickstart/spacetime.local.json
Next steps:
cd quickstart
# Follow the template's README for setup instructions
Learn more: https://spacetimedb.com/docs
EXIT=0
⚠️ 排障实录:
--non-interactive缺省时模板拉取要走登录流程,无终端环境直接失败;自动化工序必须三件套--local --non-interactive(或不联网的本地模板)。Warning: Git is not installed仅影响模板内置的 git 初始化,不阻塞项目生成。
3.2 spacetime build(编译模块为 WASM)
语法:spacetime build [OPTIONS],选项:-p/--module-path、--lint-dir(默认 src,扫非功能性 print)、-d/--debug(debug 构建,本地迭代提速不推荐 CI)、--dotnet-version。
Rust 模块实测(首次构建下载依赖后):
$ spacetime build
...(大量 cargo 依赖编译输出,略)...
Finished `release` profile [optimized] target(s) in 0.02s
Optimising module with wasm-opt...
Could not find wasm-opt to optimise the module.
For best performance install wasm-opt from https://github.com/WebAssembly/binaryen/releases.
Continuing with unoptimised module.
Build finished successfully.
⚠️ 排障实录:①未装
wasm-opt时 CLI 警告并以未优化模块继续(性能损失,建议从 binaryen releases 安装);②Rust 模块构建前置rustup target add wasm32-unknown-unknown,缺失时 publish 阶段报 "wasm32-unknown-unknown target is not installed"。
3.3 spacetime publish(发布数据库,最常用写入口)
语法:spacetime publish [OPTIONS] [name|identity]。库名规则:/^[a-z0-9]+(-[a-z0-9]+)*$/(小写字母数字,短横分隔)。关键参数:
| 参数 | 说明 |
|---|---|
-s, --server <server> | 目标服务器昵称/域名/URL |
-c, --delete-data[=<always|on-conflict|never>] | 发布到既有库时先销毁数据(危险项) |
--break-clients | 允许破坏性变更(跳过 BREAK 提示,但不允许删数据) |
--anonymous | 匿名身份执行 |
-p/--module-path、-b/--bin-path、-j/--js-path | 模块项目路径 / 预编译 wasm / JS 模块(UNSTABLE) |
--parent / --organization | 挂父库(继承团队权限)/ 挂组织(仅建库时) |
-y, --yes[=<值>] | 跳过确认,可选 all/remote/migrate/break-clients/skip-login/delete-data,值必须 = 粘连 |
--env-only / --unset-env <KEY> / --replace-env | 只更新环境变量 / 删除键 / 全量替换 |
--no-config / --env <ENV> | 忽略 spacetime.json / 选择配置层 |
实测成功回显:
$ spacetime publish --server local -y=skip-login quickstart
Using configuration from /data/quickstart/spacetime.json
Using configuration from /data/quickstart/spacetime.local.json
Publishing module /data/quickstart/spacetimedb to database 'quickstart'
Finished `release` profile [optimized] target(s) in 0.02s
Optimising module with wasm-opt...
Could not find wasm-opt to optimise the module.
For best performance install wasm-opt from https://github.com/WebAssembly/binaryen/releases.
Continuing with unoptimised module.
Build finished successfully.
Uploading to local => http://127.0.0.1:3000
Checking for breaking changes...
Publishing module...
Created new database with name: quickstart, identity: c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19
⚠️ 排障实录(
-y传参语法):-y的取值必须用=粘连。实测写-y skip-login quickstart时skip-login被当成库名、quickstart成多余参数:error: unexpected argument 'quickstart' found。正确写法-y=skip-login quickstart(帮助原文即有此约定:The value must be attached with '=' (so --yes my-db treats my-db as the database name))。
四、调用与查询
4.1 spacetime call(调用 reducer)
语法:spacetime call [OPTIONS] [DATABASE] <FUNCTION_NAME> [ARGUMENTS...];选项:-s/--server、--anonymous、-y、--no-config。
实测(插入两行,成功时静默退出码 0):
$ spacetime call --server local quickstart add '"Alice"'
WARNING: This command is UNSTABLE and subject to breaking changes.
$ spacetime call --server local quickstart add '"Bob"'
WARNING: This command is UNSTABLE and subject to breaking changes.
参数是 JSON 字面量:字符串 '"Alice"'、数字 42、对象 '{"k":1}'。
失败样例(参数个数不符,服务端回显签名,实测照抄):
$ spacetime call --server local quickstart add
WARNING: This command is UNSTABLE and subject to breaking changes.
Error: Invalid arguments provided for reducer `add` for database `quickstart` resolving to identity `c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19`.
The reducer has the following signature:
add(name: String)
Caused by:
0: Response text: invalid arguments for reducer add: .: invalid arguments for function add: .: .: invalid length 0, expected reducer args for add with 1 elements at line 1 column 2
1: HTTP status client error (400 Bad Request) for url (http://127.0.0.1:3000/v1/database/c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19/call/add)
4.2 spacetime sql(SQL 查询)
语法:spacetime sql [OPTIONS] [DATABASE] <QUERY>;选项:--interactive(交互式 SQL 提示符)、--format <text|json>、--confirmed <true|false>(仅已确认事务的更新)、-s/--server。
文本格式实测:
$ spacetime sql --server local quickstart "SELECT * FROM person"
WARNING: This command is UNSTABLE and subject to breaking changes.
name
---------
"Alice"
"Bob"
WHERE 过滤实测:
$ spacetime sql --server local quickstart "SELECT * FROM person WHERE name = 'Alice'"
WARNING: This command is UNSTABLE and subject to breaking changes.
name
---------
"Alice"
JSON 格式实测(含 schema/耗时/统计):
$ spacetime sql --server local --format json quickstart "SELECT * FROM person"
WARNING: This command is UNSTABLE and subject to breaking changes.
[{"schema":{"elements":[{"name":{"some":"name"},"algebraic_type":{"String":[]}}]},"rows":[["Alice"],["Bob"]],"total_duration_micros":94,"stats":{"rows_inserted":0,"rows_deleted":0,"rows_updated":0}}]
失败样例(表不存在/私有表,实测照抄):
$ spacetime sql --server local quickstart "SELECT * FROM nosuchtable"
WARNING: This command is UNSTABLE and subject to breaking changes.
Error: no such table: `nosuchtable`. If the table exists, it may be marked private.
Caused by:
HTTP status client error (400 Bad Request) for url (http://127.0.0.1:3000/v1/database/c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19/sql)
💡 技术拓展:SQL 是客户端与服务端交换数据的通用载体——查询走
spacetime sql(即时求值),订阅走spacetime subscribe(持续求值推送增量)。两者语法同源但能力不同:前者适合运维点查,后者是客户端 SDK 的状态镜像基础。
4.3 spacetime subscribe(订阅并接收增量推送)
语法:spacetime subscribe [OPTIONS] [DATABASE] <QUERY> [QUERY...];选项:-n/--num-updates(收几条后退出)、-t/--timeout(秒,超时未收满 -n 条是错误)、--print-initial-update(打印初始快照)、--confirmed、-s/--server。
实测(-n 1 -t 5 --print-initial-update,先收到初始快照,5 秒内无新更新则超时报错——正是该参数语义:Timing out before receiving -n updates is an error):
$ spacetime subscribe --server local quickstart "SELECT * FROM person" -n 1 -t 5 --print-initial-update
WARNING: This command is UNSTABLE and subject to breaking changes.
{"person":{"deletes":[],"inserts":[{"name":"Alice"},{"name":"Bob"}]}}
timed out after 5s
Error: subscription timed out after 5s after receiving 0/1 updates
初始快照的 {"表名":{"deletes":[],"inserts":[...]}} 结构即 SDK 在本地镜像缓存的增量协议;无新事务时(-n 未收满)按超时报错退出。
五、观测与检查
5.1 spacetime logs(模块日志)
语法:spacetime logs [OPTIONS] [database];选项:-n/--num-lines、-f/--follow、--format <text|json>、-l/--level <trace|debug|info|warn|error|panic>(≥该级别)、--level-exact、-s/--server。
实测(执行过 add 两次与 say_hello 后):
$ spacetime logs --server local quickstart -n 20
2026-10-23T17:15:47.240384Z INFO: Creating table `person`
2026-10-23T17:15:47.240819Z INFO: Invoking `init` reducer
2026-10-23T17:15:47.241016Z INFO: Database initialized
2026-10-23T17:17:49.354767Z INFO: say_hello src/lib.rs:31: Hello, Alice!
2026-10-23T17:17:49.354780Z INFO: say_hello src/lib.rs:31: Hello, Bob!
2026-10-23T17:17:49.354781Z INFO: say_hello src/lib.rs:33: Hello, World!
5.2 spacetime describe(schema 描述)
语法:spacetime describe [OPTIONS] [DATABASE] [ENTITY_TYPE [ENTITY_NAME]];ENTITY_TYPE ∈ {tables, views, reducers, procedures, routes, env, types};选项:--format <text|json>、--json(= --format json)、--anonymous、-s/--server。
整体描述实测:
$ spacetime describe --server local quickstart
WARNING: This command is UNSTABLE and subject to breaking changes.
Tables
person (public)
Columns:
name String
Reducers
add(name: String)
identity_connected() [lifecycle: client_connected] [private]
identity_disconnected() [lifecycle: client_disconnected] [private]
init() [lifecycle: init] [private]
say_hello()
只看表实测(describe quickstart tables,还可再精确到 describe quickstart tables person,输出同下):
$ spacetime describe --server local quickstart tables
WARNING: This command is UNSTABLE and subject to breaking changes.
person (public)
Columns:
name String
JSON 输出实测(--json 可看到 reducer 可见性 ClientCallable/Private、ok/err 返回类型、生命周期绑定 LifeCycleReducers、表访问性 Public 等,片段):
$ spacetime describe --server local --json quickstart
WARNING: This command is UNSTABLE and subject to breaking changes.
{
"sections": [
{ "Typespace": { "types": [ { "Product": { "elements": [
{"name":{"some":"name"},"algebraic_type":{"String":[]}} ] } } ] } },
{ "Types": [ { "source_name": {"scope":[],"source_name":"Person"},
"ty":0, "custom_ordering": true } ] },
{ "Tables": [ { "source_name":"person", "product_type_ref":0,
"primary_key":[], "indexes":[], "constraints":[], "sequences":[],
"table_type":{"User":[]}, "table_access":{"Public":[]},
"default_values":[], "is_event":false } ] },
...(Reducers / LifeCycleReducers / ExplicitNames 节,结构同上)
]
}
⚠️ 参数顺序坑(实测):
describe把第一个位置参数解析为[DATABASE],但当项目配置层生效时语义易混乱。实测在项目目录内跑spacetime describe quickstart tables报Error: Invalid entity_type 'quickstart'. Expected one of: env, procedures, reducers, routes, tables, types, views.——配置层已提供库名,第一个位置参数被当成 ENTITY_TYPE。解决:显式-s并在项目目录外执行,或加--no-config。
5.3 spacetime list(库清单)
语法:spacetime list [OPTIONS](无位置参数);列出当前身份名下的库。
$ spacetime list --server local
WARNING: This command is UNSTABLE and subject to breaking changes.
Associated databases for user c200b32b51765700c0711bd82c62d8a1c006ba880f2ded75bd69ef800d9524bb:
Database Name(s) | Identity
------------------+------------------------------------------------------------------
quickstart | c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19
5.4 spacetime env(数据库环境变量)
语法:spacetime env <get|list>;get 读单个值,list 列出键值。
$ spacetime env list --server local quickstart
key | value
-----+-------
(quickstart 模板未声明环境变量,空表为正常回显。写入走 spacetime publish --env-only --key=value ...,语义见 publish 帮助:--env-only 不构建不重传模块、--unset-env 删键、--replace-env 全量替换,宿主端按模块声明原子校验。)
5.5 spacetime login show(当前身份)
$ spacetime login show
You are logged in as c200b32b51765700c0711bd82c62d8a1c006ba880f2ded75bd69ef800d9524bb
spacetime login 支持 --token <token>(直接用 token)、--no-browser(无浏览器环境)、--auth-host(自定义认证主机);本机 standalone 场景 token 由服务端自动签发并存入 ~/.config/spacetime/cli.toml(见配置篇第六章)。
六、数据库生命周期
6.1 spacetime lock / spacetime unlock(删除保护)
帮助原文点明定位:"This is a safety mechanism to protect production databases from accidental deletion."(生产库防误删保护)。
$ spacetime lock --server local quickstart
Database c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19 is now locked. It cannot be deleted until unlocked.
$ spacetime delete --server local -y quickstart
Skipping confirmation due to --yes
Error: HTTP status client error (403 Forbidden) for url (http://127.0.0.1:3000/v1/database/c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19)
$ spacetime unlock --server local quickstart
Database c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19 is now unlocked.
⚠️ 排障实录:对锁定库
delete的失败形态是服务端 403 Forbidden,CLI 不提示"已锁定"原因——生产上见到删除 403 应先检查 lock 状态。
6.2 spacetime rename(改库名)
语法:spacetime rename [OPTIONS] --to <new-name> <database-identity>——位置参数是 identity 不是库名(identity 从 spacetime list 获取)。
$ spacetime rename --server local -y c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19 --to quickstart-db
Name set to quickstart-db for identity c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19.
$ spacetime list --server local
...(略)
quickstart-db | c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19
$ spacetime sql --server local quickstart-db "SELECT * FROM person" # 改名后数据照常可查
$ spacetime rename --server local -y c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19 --to quickstart
Name set to quickstart for identity c200342892f5aa39760975a3c67e8fa02d3a03c1991f3ddbd7ca771168129e19.
改名冲突样例(改回占用中的名字,实测照抄):
Error: Cannot rename to quickstart because it already is in use.
6.3 spacetime delete(删库)
语法:spacetime delete [OPTIONS] [database];-y 跳过确认(回显 Skipping confirmation due to --yes)。锁定库删除 403(见 6.1);解锁后删除正常。删除不可逆,生产操作前先 describe 备份 schema、sql 导出关键数据。
七、服务器连接管理(spacetime server)
子命令:list / set-default / add / remove / fingerprint / ping / edit / clear。实测:
$ spacetime server list
WARNING: This command is UNSTABLE and subject to breaking changes.
DEFAULT HOSTNAME PROTOCOL NICKNAME
*** maincloud.spacetimedb.com https maincloud
127.0.0.1:3000 http local
$ spacetime server ping local
WARNING: This command is UNSTABLE and subject to breaking changes.
Server is online: http://127.0.0.1:3000
$ spacetime server set-default local
WARNING: This command is UNSTABLE and subject to breaking changes.
Saving config to /root/.config/spacetime/cli.toml.
server add(语法 server add [OPTIONS] --url <url> <name>,昵称为位置参数):
$ spacetime server add --url http://127.0.0.1:3000 demo --no-fingerprint
WARNING: This command is UNSTABLE and subject to breaking changes.
Error: Server already configured for host: 127.0.0.1:3000
⚠️ 排障实录:同一 host 只能有一个昵称(
local已占 127.0.0.1:3000),加第二个昵称报Server already configured for host;删除不存在的昵称报No such saved server configuration: demo并附正确 add 示例。server set/server url/server default/server unset均不是合法子命令(clap 直接报 unrecognized,其中两个还有纠错提示tip: some similar subcommands exist: 'edit', 'set-default'——改名用server edit,设默认用server set-default)。
server fingerprint(保存服务器公钥指纹,首次交互确认):
$ spacetime server fingerprint local
WARNING: This command is UNSTABLE and subject to breaking changes.
No saved fingerprint for server local. New fingerprint:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETMibbisWpV//VDjlnLEP9BIPaxqd
L9s0/1diD51v+RgTdnwB0cUqH9I2yBZJdq1OnKVZBkkrNbuFGrYWFlpckA==
-----END PUBLIC KEY-----
Continue? [y/N]Error: Aborted
(脚本化环境无 TTY,交互确认自动 Abort;用 -y 跳过。指纹机制防中间人——首次连接记录服务器公钥,后续校验。)server clear 删除本地数据目录全部库数据(--data-dir 可指定目录,危险操作)。
八、客户端代码生成(spacetime generate)
语法:generate [DATABASE] --lang <LANG> [--module-path|--bin-path|--js-path] [--out-dir|--uproject-dir];--lang ∈ {csharp, typescript, rust, unrealcpp};另有 --namespace(默认 SpacetimeDB.Types)、--dotnet-version、--include-private(把私有表/函数也生成进代码)。
实测(在模块项目目录内,生成 TS 客户端绑定):
$ spacetime generate --lang typescript --out-dir /data/gen-ts
Using configuration from /data/quickstart/spacetime.json
Using configuration from /data/quickstart/spacetime.local.json
Generating TypeScript module bindings for module /data/quickstart/spacetimedb
Finished `release` profile [optimized] target(s) in 0.02s
Optimising module with wasm-opt...
Could not find wasm-opt to optimise the module.
For best performance install wasm-opt from https://github.com/WebAssembly/binaryen/releases.
Continuing with unoptimised module.
Build finished successfully.
Writing file /data/gen-ts/person_table.ts
Writing file /data/gen-ts/add_reducer.ts
Writing file /data/gen-ts/say_hello_reducer.ts
Writing file /data/gen-ts/index.ts
Creating directory /data/gen-ts/types
Writing file /data/gen-ts/types/reducers.ts
Creating directory /data/gen-ts/types
Writing file /data/gen-ts/types/procedures.ts
Writing file /data/gen-ts/types.ts
Generate finished successfully.
⚠️ 排障实录:
generate没有--server参数(帮助 Usage 无此项;实测--server local报error: unexpected argument '--server' found)。它检查的是本地模块构建产物(--module-path/--bin-path),发布到哪个服务器与之无关。
九、服务端与 AI 集成
9.1 spacetime start(启动 standalone 服务端)
见配置篇第三章逐参数详解;B1 安装指南含 systemd 托管全文。要点回显:默认 0.0.0.0:3000、前台运行、同数据目录单实例锁。
9.2 spacetime mcp(把数据库暴露给 AI agent)
帮助原文:"Serve SpacetimeDB to MCP-aware agents and editors over stdio."(以 MCP stdio 服务形式供 agent/编辑器接入)。语法 spacetime mcp [OPTIONS] [database]:不传库名时服务整个服务器(每个工具带 database 参数),或用 SPACETIMEDB_DB_NAME 环境变量指定单库;选项 -s/--server、--anonymous。运行后 CLI 进程以 stdio MCP 协议对外服务,把它配进编辑器/agent 的 MCP 配置即可让 agent 对该库执行查询与调用,认证复用 CLI 的当前身份。
9.3 spacetime auth(SpacetimeAuth 管理)
子命令组 config / idp / client:管理数据库级 OpenID Connect 身份提供方(idp)与 OAuth 客户端。配合 v2.12.0 起仅接受非对称算法 JWT 的安全策略,用于接入自有 IdP。
十、版本管理(spacetime version)
子命令:list [--all] / use <VERSION> / install <VERSION> [--edition standalone] [--use] [-y] / upgrade(升级并切到最新)/ uninstall <VERSION> [-y]。完整实测(安装 2.12.0、双版本切换)见《SpacetimeDB 2.13.0 安装指南》第九章。
十一、排障实录汇总
11.1 项目配置层(spacetime.json)导致的解析错乱
模板在项目目录生成两层配置:spacetime.json(server = "maincloud")与 spacetime.local.json(database = "quickstart-p4ue7",库名带随机后缀避免与 Maincloud 冲突)。在项目目录内执行命令时它们自动生效,实测产生三类「莫名其妙」:
spacetime call quickstart ...报Error: failed to find database quickstart-p4ue7(CLI 用配置层的库名去解析);spacetime env list quickstart(未带-s)请求打到了 maincloud(401 Unauthorized,因配置层 server=maincloud 且本地身份对 maincloud 无权限);spacetime describe quickstart tables报Invalid entity_type 'quickstart'(配置层提供了库名,位置参数被顺延为 ENTITY_TYPE)。
对策:脚本与交互统一显式 --server local 并在项目目录外执行,或加 --no-config 忽略配置层。
11.2 -y 取值必须 = 粘连
spacetime publish -y skip-login quickstart → error: unexpected argument 'quickstart' found;正确 -y=skip-login quickstart(详见 3.3)。
11.3 锁定库删除 403、rename 冲突、server add host 唯一
见 6.1 / 6.2 / 第七章,均为服务端真实拒绝形态,CLI 报错不含业务解释,按本节索引排查。
11.4 模块编译链前置
Rust 模块需 rustup target add wasm32-unknown-unknown;建议安装 wasm-opt(binaryen)获得模块优化;C# 模块可用 --native-aot(实验性,Linux 需 .NET 10)。
十二、参考链接
| 资料 | 链接 |
|---|---|
| 本组件认知篇 | 《SpacetimeDB 2.13.0 介绍与选型指南》 |
| 本组件安装篇 | 《SpacetimeDB 2.13.0 安装指南》 |
| 本组件配置篇 | 《SpacetimeDB 2.13.0 配置参数详解》 |
| 官方 CLI 文档 | https://spacetimedb.com/docs/cli |
| 消息队列对照组(传统架构组件) | 《BlazingMQ 介绍与选型指南》 |