Packages 包City CLI

Models 与 Tables

用 downcity 查看 models、schema、表数据,以及它和 City 数据层的关系。

CLI 最常被用来做两件事:

  • 看模型
  • 看表

为什么 models 是第一排查入口

很多“AI 调不通”的问题,最后并不是 provider 本身坏了,而是模型配置层出问题:

  • model 有没有注册进去
  • 默认模型是不是你以为的那个
  • 数据库里的模型记录是否正确

这时先开 CLI 通常比写临时脚本更快。

为什么 tables 同样关键

当你排查这些能力时,最后往往都会落到表:

  • towns
  • env
  • usage 事件表
  • accounts 相关表
  • entitlement / webhook 相关表

也就是说,Downcity 很多问题最终都可以归结成一句话:

数据事实到底是什么?

最常见的模型相关入口

city
town city login
town city status

适合:

  • 查看 City AIService 暴露出的模型
  • 选择 City base 并通过 Town 登录
  • 在启动本机 Agent 前确认 City 连接设置可用

最常见的表排查场景

场景一:service 是否真的写了表

例如你接了:

  • @downcity/services
  • @downcity/services
  • @downcity/services

这时你最关心的往往不是“文档里说会写”,而是“我的这个 City 里现在到底有没有这些表和数据”。

CLI 正适合先肉眼确认。

场景二:usage / payment / auth 为什么看起来没生效

先看表再猜逻辑,通常比只看 HTTP 报错更高效。

你会更快判断问题是在:

  • 调用没有进来
  • service 没启用
  • 表没有创建
  • 数据写入失败

一个常见工作流

city
# or start a local agent
town agent start .
town city status

然后在交互式面板里继续看:

  • tables
  • schema
  • rows

这个工作流适合第一次接 City 或第一次接 service 后的确认。

它和 City 数据层的关系

CLI 本身不替你定义数据模型,它只是把 City 运行时里已经存在的数据层摊开给你看。

这也是为什么这页要和 Store 与 Table 一起理解:

  • @downcity/city 负责受控数据层
  • downcity 负责人工查看和排查入口

常见误解

看表不是“低级排查”

在 City、service、usage、payment 这类场景里,看表往往是最快定位事实的方式。

CLI 不是数据库 IDE 替代品

它更像 City 专用运维入口,而不是通用数据库管理器。

只看模型不够

模型、service 表、usage 事件、env 都可能共同影响一个产品请求,所以很多时候需要把 models 和 tables 一起看。

继续阅读