跳转到内容

CLI:db

先读 CLI 总览:会话/目录、退出约定、角色边界、合成占位 ID 和执行授权规则在其中统一定义。本页逐叶补充例外;以下命令不是按顺序执行的脚本。

这些文件只为下面例子提供输入;创建远程对象、执行脚本、数据库 SQL 或存储操作前,必须自行准备隔离项目并明确授权。生成文档不执行任何例子。

-- migrations/demo_db/0001_demo.sql; isolated PostgreSQL/MySQL/SQLite only
CREATE TABLE cli_demo (id INTEGER PRIMARY KEY);

先配置可写隔离 demo_db 资源并备份。baseline 仅在该表已按文件精确存在时使用;repair 仅在确有已手工修复的失败行时使用,不把这四命令当作顺序执行教程。清理表需你审核并授权的新迁移;本页不执行 SQL。

前提与权限。 平台登录、已选择项目,有效项目角色为 Owner/Admin;Developer/Operator 不可发布。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。

Usage: viat db baseline --through <THROUGH> <RESOURCE>

命令别名: 无。

参数 ID / 完整拼写类型、消费值数量、action必填 / 默认允许值冲突、别名、解析与原始 Clap 帮助
help: --help / -hString, 0, Help否;条件必填见行为; Clap 无显式默认—原始帮助:Print help
resource: <RESOURCE> (#1)String, 1, Set是; Clap 无显式默认——
through: --throughString, 1, Set是; Clap 无显式默认——

Clap 参数组(literal metadata):{"arguments":["resource","through"],"id":"Baseline","multiple":true,"required":false}

输入、行为与副作用。 将本地至必填 —through ID 的所有文件标已应用,不跑 SQL。仅用于已精确具备这些 schema 的库,不是隐藏漂移。需可写受支持资源 DB 和匹配文件。

实际输出与退出。 文本报告 baseline 数量/资源;写 ledger/checksum,不跑业务 DDL。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。

合成调用示例(只校验语法,不执行)。

终端窗口
viat db baseline demo_db --through 0001_demo

失败处理、验证与清理。 through 文件缺失/ledger 冲突拒绝失败。baseline 前独立验证 schema,再 db status。错误 baseline 需备份支持下有意修 ledger;无 unbaseline CLI。

前提与权限。 平台登录、已选择项目,有效项目角色为 Owner/Admin;Developer/Operator 不可发布。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。

Usage: viat db migrate [OPTIONS] [RESOURCE]

命令别名: 无。

参数 ID / 完整拼写类型、消费值数量、action必填 / 默认允许值冲突、别名、解析与原始 Clap 帮助
allow_out_of_order: --allow-out-of-orderbool, 0, SetTrue否;条件必填见行为; false—原始帮助:Apply a pending file even if it sorts before one already applied
dry_run: --dry-runbool, 0, SetTrue否;条件必填见行为; false—原始帮助:List what would run, run nothing
help: --help / -hString, 0, Help否;条件必填见行为; Clap 无显式默认—原始帮助:Print help
resource: <RESOURCE> (#1)String, 1, Set否;条件必填见行为; Clap 无显式默认;运行时:所有发现迁移目录——

Clap 参数组(literal metadata):{"arguments":["allow_out_of_order","dry_run","resource"],"id":"Migrate","multiple":true,"required":false}

输入、行为与副作用。 按字典 ID 顺序执行待迁移 SQL,首错停止。拒绝被改已应用文件、失败 ledger 行和乱序文件(除非 —allow-out-of-order)。—dry-run 只读/计划(editor 足够);省略资源则所有发现目录。无目录会在登录前成功无操作。

实际输出与退出。 文本为 would apply/up to date/applied(时长)/already applied。真实变更使用平台资源凭据。PostgreSQL/SQLite 文件和 ledger 同事务;MySQL DDL 自动提交,可留部分状态/失败行。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。

合成调用示例(只校验语法,不执行)。

终端窗口
viat db migrate demo_db --dry-run

失败处理、验证与清理。 示例仅用已授权隔离 DB。超时/断连可仍在执行 SQL,重试前查 status。dry-run 读取 ledger 不初始化表。先备份;回退需新审核迁移/手工修库,无 CLI down。push 不代跑。

前提与权限。 平台登录、已选择项目,有效项目角色为 Owner/Admin;Developer/Operator 不可发布。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。

Usage: viat db repair <RESOURCE> <ID>

命令别名: 无。

参数 ID / 完整拼写类型、消费值数量、action必填 / 默认允许值冲突、别名、解析与原始 Clap 帮助
help: --help / -hString, 0, Help否;条件必填见行为; Clap 无显式默认—原始帮助:Print help
id: <ID> (#2)String, 1, Set是; Clap 无显式默认—原始帮助:The migration’s id (the file’s stem)
resource: <RESOURCE> (#1)String, 1, Set是; Clap 无显式默认—原始帮助:The resource (as under migrations/, e.g. db or lab/db)

Clap 参数组(literal metadata):{"arguments":["id","resource"],"id":"Repair","multiple":true,"required":false}

输入、行为与副作用。 手工修复部分应用 MySQL 文件后,只清其失败 ledger 行,使下次 migrate 整文件重跑。绝不清已应用行,不自动修 SQL。

实际输出与退出。 文本为 cleared the failed row … 或服务端结果;只变 ledger 状态。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。

合成调用示例(只校验语法,不执行)。

终端窗口
viat db repair demo_db 0001_demo

失败处理、验证与清理。 清除前确认真实 DB 和幂等性,否则重跑可重复 DDL/数据。不存在/非失败行可拒绝或按响应无操作;db status 验证、保留诊断/备份并有意恢复。

前提与权限。 平台登录、已选择项目,有效项目角色为 Owner/Admin/Developer。Operator 不可用,包括只读形式。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。

Usage: viat db status [RESOURCE]

命令别名: 无。

参数 ID / 完整拼写类型、消费值数量、action必填 / 默认允许值冲突、别名、解析与原始 Clap 帮助
help: --help / -hString, 0, Help否;条件必填见行为; Clap 无显式默认—原始帮助:Print help
resource: <RESOURCE> (#1)String, 1, Set否;条件必填见行为; Clap 无显式默认;运行时:所有发现迁移目录—原始帮助:One resource (as under migrations/, e.g. db or lab/db); all if omitted

Clap 参数组(literal metadata):{"arguments":["resource"],"id":"Status","multiple":true,"required":false}

输入、行为与副作用。 发现 CWD migrations/<folder/resource>/*.sql 并将文件 checksum 与资源 DB ledger 比。省略 resource 表示全部发现资源。支持 PostgreSQL/MySQL/SQLite,不是平台迁移/SQL Server。无迁移目录时即使未登录也早期成功无操作。

实际输出与退出。 文本为 applied/baseline/pending/CHANGED/FAILED 及仅 ledger 行。报告 changed/failed 本身不使 status 非零。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。

合成调用示例(只校验语法,不执行)。

终端窗口
viat db status demo_db

失败处理、验证与清理。 需可读 SQL 与可达资源 DB。ledger 读取不会创建 ledger 表;从未迁移的数据库返回空 ledger。恢复被改已应用文件,以新迁移纠正,勿改已应用历史。无自动破坏性清理。

语法来自固定 Clap 合同与 main.rs;行为/权限核对以下源文件,路径相对产品仓库根。

  • crates/viat-cli/src/commands/db.rs
  • crates/viat-api/src/handlers/db_migrations.rs
  • crates/viat-runtime/src/db_migrate.rs