用途:从数据库生成 Wren MDL 清单,借助 ibis-server 内省数据库 schema,无需本地安装数据库驱动。适合新建 Wren MDL、搭建初始项目结构。
主要能力与流程:先做版本检查(静默获取 versions.json,若远端更新会提示用 npx skills add Canner/wren-engine --skill generate-mdl --agent claude-code 更新,然后继续);随后按步骤执行:health_check() 确认连接并选择数据源类型(如 POSTGRES、BIGQUERY、SNOWFLAKE)和可选 schema 过滤;list_remote_tables() 获取表结构;list_remote_constraints() 获取外键并用其构建 Relationship,若为空则按列命名约定推断;按 MDL 结构构建 JSON(catalog 默认 wren、dataSource 用枚举值、tableReference.catalog 用数据库名、每表一个 Model、每列一个 Column、主键标记 isPrimaryKey 并设置 primaryKey、FK 列添加 Relationship、暂不写计算列);用 deploy_manifest(mdl=...) 加 dry_run(sql="SELECT * FROM <模型> LIMIT 1") 验证;可选按 wren-project 技能保存为 YAML 项目目录并构建 target/mdl.json;最后 deploy_manifest 部署。
用法要点:连接信息只能通过 Web UI(http://localhost:9001)配置,不能用 ibis-server API、curl 等方式编程设置;read-only 模式开启时 list_remote_tables() 和 list_remote_constraints() 会失败。若 Web UI 被禁用(WEB_UI_ENABLED=false),需先在 ~/.wren/connection_info.json 预配置连接信息。
限制:需已配置可用连接并确认健康检查通过;类型映射有既定对照表(如 INT→INTEGER、VARCHAR/TEXT/STRING→VARCHAR 等),不确定时以 VARCHAR 兜底;若 list_remote_constraints() 返回空需自行推断关系。其他如收费、平台支持等细节暂未提供。