跳至主要内容
DataTug.ai
GitHub

← 使用 DataTug 与 AI 的三种方式

CLI 命令

你的代理可以运行的命令 无论是否使用技能。

AI 编码代理可以在 shell 中运行任何 datatug 命令。以下是一些值得了解的命令:每个命令都在公共示例数据上运行过,并且在 datatug.io 上有真实输出。

代理常问的四件事 。

每个命令的功能,代理如何读取结果,以及插件目前是否有对应的技能。

  • datatug compare可用

    比较两个数据库

    读取两个数据库副本的模式和每一行,并报告新增、删除或更改的内容。

    添加 --json:生成一个文档,包含摘要、模式更改和每个差异的记录。即使数据库不同,退出状态也为 0,因此代理通过读取摘要来做出判断。

    尚无技能阅读带有真实输出的页面

  • datatug db copy · datatug db export可用

    备份、恢复和移动没有日期列的表

    在数据库之间复制表,或将数据库导出为适合纳入 Git 的纯文件。将结果与源进行比较以验证。

    这些命令在 stderr 上打印进度和错误,目前没有 --json。最后运行 datatug compare --json 以获得代理可以读取的结论。日期和外键有已知限制,列在页面上。

    尚无技能阅读带有真实输出的页面

  • datatug query run可用

    运行查询,获取返回的行

    针对数据库 URL 运行查询,并将行以 JSON、JSONL、CSV 或 YAML 格式打印到 stdout。除非关闭,否则访问策略会生效。

    使用 --format json 并读取 stdout。应用的策略在 stderr 上报告,因此代理可以看到哪些内容被阻止。

    尚无技能阅读带有真实输出的页面

  • datatug scan · datatug show可用

    读取数据库的结构

    将数据库扫描到 DataTug 项目中,然后打印其模式、表、列和主键。

    datatug show --format json 将相同的列表打印为一个 JSON 文档;文本形式是稳定的,因此可以比较两次运行的结果。

    scan 有技能;show 没有阅读带有真实输出的页面

代理从 compare 读取的内容 。

在 datatug.io 上运行 compare 得到的 JSON:两个 Northwind 副本,在右侧副本中两个价格发生变化,添加了一个类别,删除了一个托运人,并添加了一列。下面显示了一个托运人。

命令

datatug compare northwind-sqlite northwind-sqlite \
  --project ./datatug-demo-project/demo-project-1 \
  --left-environment dev --right-environment dev \
  --left-source env:LEFT_DB --right-source env:RIGHT_DB \
  --json --details --limit 20 > compare.json
jq -c '.summary, .schemaChanges' compare.json
jq '.relations[] | select(.name == "Shippers")' compare.json

输出

{"added":1,"removed":1,"changed":6,"unchanged":3303}
["Regions.Note exists only in right"]
{
  "name": "Shippers",
  "kind": "relation",
  "identity": "primary-key",
  "leftRows": 3,
  "rightRows": 2,
  "counts": {
    "added": 0,
    "removed": 1,
    "changed": 0,
    "unchanged": 2
  },
  "details": [
    {
      "id": "ShipperID=3",
      "status": "removed",
      "fields": [
        {
          "name": "CompanyName",
          "before": "Federal Shipping",
          "after": null,
          "afterAbsent": true
        },
        {
          "name": "Phone",
          "before": "(503) 555-9931",
          "after": null,
          "afterAbsent": true
        },
        {
          "name": "ShipperID",
          "before": "3",
          "after": null,
          "afterAbsent": true
        }
      ]
    }
  ]
}

使用 datatug 0.78.0 于 2026-10-15 运行,仅限公共示例数据。此处不涉及其他数据库、速度和规模的声明。

插件止步之处。 目前。

插件具有 install、init、projects、scan、validate 和 serve 的技能。compare、copy 和 export、query run 以及 show 没有技能,因此代理会在 shell 中运行它们。为每个命令添加技能是后续工作,而非现在可以依赖的事项。

查看所有技能及其状态