cgraphx 1.3.1 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/.claude-template/skills/code-impact-api/SKILL.md +1 -1
  2. package/dist/.claude-template/skills/code-impact-init/SKILL.md +3 -0
  3. package/dist/.claude-template/skills/code-impact-markdown/SKILL.md +13 -5
  4. package/dist/.claude-template/skills/db-query/SKILL.md +102 -42
  5. package/dist/.claude-template/skills/db-query/agent-prompt.md +12 -13
  6. package/dist/.claude-template/skills/export-table-ddl/SKILL.md +167 -0
  7. package/dist/.claude-template/skills/export-table-ddl/closed-loop.html +173 -0
  8. package/dist/.claude-template/skills/export-table-ddl/evals/evals.json +26 -0
  9. package/dist/.claude-template/skills/export-table-ddl/scripts/export-ddl.mjs +163 -0
  10. package/dist/dbquery/cli.d.ts.map +1 -1
  11. package/dist/dbquery/cli.js +20 -3
  12. package/dist/dbquery/cli.js.map +1 -1
  13. package/dist/dbquery/executor.d.ts.map +1 -1
  14. package/dist/dbquery/executor.js +15 -23
  15. package/dist/dbquery/executor.js.map +1 -1
  16. package/dist/dbquery/format.d.ts +15 -1
  17. package/dist/dbquery/format.d.ts.map +1 -1
  18. package/dist/dbquery/format.js +86 -23
  19. package/dist/dbquery/format.js.map +1 -1
  20. package/dist/dbquery/identifiers.d.ts +19 -0
  21. package/dist/dbquery/identifiers.d.ts.map +1 -0
  22. package/dist/dbquery/identifiers.js +37 -0
  23. package/dist/dbquery/identifiers.js.map +1 -0
  24. package/dist/dbquery/index.d.ts +1 -1
  25. package/dist/dbquery/index.d.ts.map +1 -1
  26. package/dist/dbquery/index.js.map +1 -1
  27. package/dist/dbquery/queries.d.ts +23 -3
  28. package/dist/dbquery/queries.d.ts.map +1 -1
  29. package/dist/dbquery/queries.js +46 -27
  30. package/dist/dbquery/queries.js.map +1 -1
  31. package/dist/dbquery/types.d.ts +2 -15
  32. package/dist/dbquery/types.d.ts.map +1 -1
  33. package/dist/markdown/cli.d.ts.map +1 -1
  34. package/dist/markdown/cli.js +42 -0
  35. package/dist/markdown/cli.js.map +1 -1
  36. package/package.json +1 -1
@@ -0,0 +1,173 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>db schema skills 闭环</title>
6
+ <style>
7
+ :root {
8
+ --green: #16a34a; /* 本地知识库(便宜) */
9
+ --green-bg: #dcfce7;
10
+ --blue: #2563eb; /* DB 连接(贵) */
11
+ --blue-bg: #dbeafe;
12
+ --orange: #ea580c; /* 探索补充 */
13
+ --orange-bg: #ffedd5;
14
+ --red: #dc2626;
15
+ --gray: #6b7280;
16
+ --gray-bg: #f3f4f6;
17
+ --border: #d1d5db;
18
+ }
19
+ * { box-sizing: border-box; }
20
+ body {
21
+ font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
22
+ max-width: 1100px; margin: 0 auto; padding: 32px 24px 80px;
23
+ color: #111827; line-height: 1.6;
24
+ }
25
+ h1 { font-size: 28px; margin: 0 0 8px; }
26
+ h2 { font-size: 20px; margin: 40px 0 12px; border-bottom: 2px solid var(--border); padding-bottom: 6px; }
27
+ h3 { font-size: 15px; margin: 20px 0 8px; color: var(--gray); font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; }
28
+ .subtitle { color: var(--gray); font-size: 15px; margin-bottom: 32px; }
29
+ .tag { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; margin-right: 6px; }
30
+ .tag-green { background: var(--green-bg); color: var(--green); }
31
+ .tag-blue { background: var(--blue-bg); color: var(--blue); }
32
+ .tag-orange { background: var(--orange-bg); color: var(--orange); }
33
+
34
+ /* 角色卡 */
35
+ .roles { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 16px 0; }
36
+ .role-card { border: 1px solid var(--border); border-radius: 8px; padding: 16px 20px; }
37
+ .role-card.init { border-left: 4px solid var(--blue); background: var(--blue-bg); }
38
+ .role-card.daily { border-left: 4px solid var(--green); background: var(--green-bg); }
39
+ .role-card h3 { margin: 0 0 8px; color: inherit; text-transform: none; letter-spacing: 0; font-size: 16px; }
40
+ .role-card .when { font-size: 13px; color: var(--gray); margin-top: 8px; }
41
+
42
+ /* 目录树 */
43
+ .tree {
44
+ background: var(--gray-bg); border: 1px solid var(--border); border-radius: 8px;
45
+ padding: 16px 20px; font-family: "SF Mono", Menlo, monospace; font-size: 13px; line-height: 1.8;
46
+ margin: 12px 0; white-space: pre;
47
+ }
48
+ .tree .hl { background: var(--green-bg); padding: 1px 4px; border-radius: 3px; color: var(--green); font-weight: 600; }
49
+ .tree .hlo { background: var(--orange-bg); padding: 1px 4px; border-radius: 3px; color: var(--orange); font-weight: 600; }
50
+
51
+ /* 数据流图 */
52
+ .flow {
53
+ display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px 8px; align-items: center;
54
+ margin: 16px 0;
55
+ }
56
+ .box {
57
+ border: 2px solid var(--border); border-radius: 8px; padding: 12px 16px; text-align: center;
58
+ background: white;
59
+ }
60
+ .box.db { border-color: var(--blue); background: var(--blue-bg); }
61
+ .box.kb { border-color: var(--green); background: var(--green-bg); }
62
+ .box.agent { border-color: var(--gray); background: var(--gray-bg); }
63
+ .box .label { font-weight: 600; font-size: 14px; }
64
+ .box .sub { font-size: 12px; color: var(--gray); margin-top: 4px; }
65
+ .arrow {
66
+ text-align: center; font-size: 24px; color: var(--gray); font-weight: bold;
67
+ position: relative;
68
+ }
69
+ .arrow .a-label {
70
+ position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
71
+ font-size: 11px; white-space: nowrap; background: white; padding: 0 4px; color: var(--gray);
72
+ }
73
+ .arrow.green { color: var(--green); }
74
+ .arrow.blue { color: var(--blue); }
75
+ .arrow.orange { color: var(--orange); }
76
+ .arrow-row { display: contents; }
77
+
78
+ /* 时序 */
79
+ .timeline { position: relative; padding-left: 24px; margin: 16px 0; }
80
+ .timeline::before { content: ''; position: absolute; left: 8px; top: 8px; bottom: 8px; width: 2px; background: var(--border); }
81
+ .tl-item { position: relative; padding: 8px 0 16px 24px; }
82
+ .tl-item::before {
83
+ content: ''; position: absolute; left: -20px; top: 14px; width: 12px; height: 12px;
84
+ border-radius: 50%; background: white; border: 2px solid var(--gray);
85
+ }
86
+ .tl-item.init::before { border-color: var(--blue); background: var(--blue); }
87
+ .tl-item.read::before { border-color: var(--green); background: var(--green); }
88
+ .tl-item.write::before { border-color: var(--orange); background: var(--orange); }
89
+ .tl-item .tl-title { font-weight: 600; }
90
+ .tl-item .tl-body { font-size: 14px; color: var(--gray); margin-top: 2px; }
91
+ .tl-item code { background: var(--gray-bg); padding: 1px 5px; border-radius: 3px; font-size: 12px; }
92
+
93
+ /* 枢纽表对比 */
94
+ .compare { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 16px 0; }
95
+ .compare-card { border: 1px solid var(--border); border-radius: 8px; padding: 16px; }
96
+ .compare-card.bad { border-color: var(--red); background: #fef2f2; }
97
+ .compare-card.good { border-color: var(--green); background: var(--green-bg); }
98
+ .compare-card .head { font-weight: 600; margin-bottom: 8px; }
99
+ .compare-card.bad .head::before { content: "✗ "; color: var(--red); font-weight: bold; }
100
+ .compare-card.good .head::before { content: "✓ "; color: var(--green); font-weight: bold; }
101
+
102
+ /* 规则卡 */
103
+ .rules { display: grid; gap: 10px; margin: 16px 0; }
104
+ .rule { display: flex; gap: 12px; padding: 12px 16px; border-left: 3px solid var(--green); background: var(--gray-bg); border-radius: 4px; }
105
+ .rule .num { font-weight: 700; color: var(--green); font-size: 18px; flex-shrink: 0; }
106
+ .rule .body { font-size: 14px; }
107
+ .rule .body b { color: #111827; }
108
+
109
+ code { font-family: "SF Mono", Menlo, monospace; }
110
+ .footer { margin-top: 60px; padding-top: 16px; border-top: 1px solid var(--border); color: var(--gray); font-size: 12px; }
111
+ </style>
112
+ </head>
113
+ <body>
114
+
115
+ <h1>db schema skills 闭环</h1>
116
+ <p class="subtitle">两个 skill + 一个共享知识库,让 agent 越用越懂业务数据</p>
117
+
118
+ <h2>1. 共享的目录结构(知识库本体)</h2>
119
+ <div class="tree">docs/schema-knowledge/
120
+ ├── order-svc/
121
+ │ ├── <span class="hl">INDEX.md</span> ← agent 进目录第一件事读(表清单+注释)
122
+ │ ├── pending-comments.sql ← DBA 待执行 COMMENT SQL(action 队列,不在 agent 读路径)
123
+ │ └── ddl/
124
+ │ ├── work_order.sql ← DDL + <span class="hlo">DISCOVERED 块</span>(积累的隐式关系/含义/陷阱)
125
+ │ ├── users.sql ← DDL + DISCOVERED 块
126
+ │ └── payment.sql
127
+ └── cust-svc/
128
+ ├── INDEX.md
129
+ ├── pending-comments.sql
130
+ └── ddl/...</div>
131
+ <p style="font-size:14px;color:var(--gray);">
132
+ <b style="color:var(--green)">绿色</b> = agent 必经节点(INDEX.md 是入口,ddl/&lt;table&gt;.sql 是详情);
133
+ <b style="color:var(--orange)">橙色</b> = db-query 探索补充的部分,export 重 dump 时会保留;
134
+ <b style="color:var(--gray)">灰色</b> pending-comments.sql = DBA action 队列,不在 agent 读路径上(所以可以独立文件)。
135
+ </p>
136
+
137
+ <h2>2. 时序:知识怎么积累起来</h2>
138
+ <div class="timeline">
139
+ <div class="tl-item init">
140
+ <div class="tl-title">T0 · 跑 export-table-ddl</div>
141
+ <div class="tl-body">建基线 → <code>ddl/work_order.sql</code> 只有 DDL,无 DISCOVERED 块</div>
142
+ </div>
143
+ <div class="tl-item read">
144
+ <div class="tl-title">T1 · db-query 任务:"查 work_order 待派单的数据"</div>
145
+ <div class="tl-body"><code>Read ddl/work_order.sql</code>(首选)→ <code>cgraphx db query --sql "SELECT ... LIMIT 5"</code>(查数据)</div>
146
+ </div>
147
+ <div class="tl-item write">
148
+ <div class="tl-title">T1 续 · 发现 work_order.assignee_id 实际对应 users.staff_code</div>
149
+ <div class="tl-body">
150
+ 知识 → append 到 <code>ddl/work_order.sql</code> 和 <code>ddl/users.sql</code> 的 DISCOVERED 块(双向)<br>
151
+ DB 注释缺失 → action 进 <code>pending-comments.sql</code>(DBA 待执行)
152
+ </div>
153
+ </div>
154
+ <div class="tl-item init">
155
+ <div class="tl-title">T2 · DBA 改了 schema,重跑 export-table-ddl</div>
156
+ <div class="tl-body">DDL 部分刷新(拿新结构),<b style="color:var(--orange)">DISCOVERED 块自动保留</b>(不覆盖);pending-comments.sql 不动</div>
157
+ </div>
158
+ <div class="tl-item write">
159
+ <div class="tl-title">T2 续 · DBA 执行 pending-comments.sql 里的 COMMENT</div>
160
+ <div class="tl-body">DB 注释固化 → 删 pending-comments.sql 里那条 + 删 DISCOVERED 对应的 <code>[字段含义]</code> 行(DB 已是单一事实源)</div>
161
+ </div>
162
+ <div class="tl-item read">
163
+ <div class="tl-title">T3 · 下一次 db-query 读 work_order</div>
164
+ <div class="tl-body"><code>Read ddl/work_order.sql</code> → 看到 DDL + DISCOVERED 块(<b>积累生效,不用重新踩坑</b>)</div>
165
+ </div>
166
+ </div>
167
+
168
+ <div class="footer">
169
+ 闭环核心:知识库是 <b style="color:var(--green)">便宜 + 丰富</b> 的首选信息源(本地读 + DISCOVERED 块),DB 是 <b style="color:var(--blue)">昂贵 + 不可替代</b> 的兜底(连库 + 只读铁律)。agent 默认走知识库,只在"知识库没有"或"要实际数据"时连库 —— 这样新沉淀的知识才会被读到,闭环才转得起来。
170
+ </div>
171
+
172
+ </body>
173
+ </html>
@@ -0,0 +1,26 @@
1
+ {
2
+ "skill_name": "export-table-ddl",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "name": "single-project-from-code",
7
+ "prompt": "我在做一个客户管理服务的代码理解,项目根目录在 ~/work/customer-svc,用 zqassis 这个 pg profile。帮我把这个项目用到的所有表的 DDL 导出来,放到 docs/schema-dump/ 下,工程名就叫 customer-svc。表名从代码里 grep 出来就行,导出前先给我看一眼表清单确认。",
8
+ "expected_output": "docs/schema-dump/customer-svc/INDEX.md + ddl/*.sql;INDEX.md 列出所有表名+注释;导出前用户确认过表清单",
9
+ "files": []
10
+ },
11
+ {
12
+ "id": 2,
13
+ "name": "multi-project-monorepo",
14
+ "prompt": "我们的 monorepo 在 ~/work/platform,下面 services/order-svc 和 services/cust-svc 两个工程,各自有自己的表。用 xw-order 和 xw-cust 两个 mysql profile 分别导出(每个工程对应一个 profile),放到 docs/schema-dump/ 下按工程分目录。表清单用全库导出(--tables all)。",
15
+ "expected_output": "docs/schema-dump/order-svc/ + docs/schema-dump/cust-svc/,各自 INDEX.md + ddl/,两个工程用了各自的 profile",
16
+ "files": []
17
+ },
18
+ {
19
+ "id": 3,
20
+ "name": "user-provided-table-list",
21
+ "prompt": "我有一个表清单文件 /tmp/核心表.txt,每行一个表名,大概 30 张表。用 zqassis profile 导出到 docs/schema-dump/core/ 下,工程名 core。直接导出不用让我确认表清单了。",
22
+ "expected_output": "docs/schema-dump/core/INDEX.md + ddl/*.sql;跳过表清单确认步骤直接导出;清单里不存在于 DB 的表在 INDEX 里标 missing",
23
+ "files": []
24
+ }
25
+ ]
26
+ }
@@ -0,0 +1,163 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * export-ddl.mjs — 批量导出项目表的 DDL 到可检索目录。
4
+ *
5
+ * 流程:
6
+ * 1. `cgraphx db schema --mode=tables --profile=P` 拿全表 + 表注释(1 次调用)
7
+ * 2. 过滤到请求的表清单(--tables all 时跳过过滤)
8
+ * 3. 对每张表 `cgraphx db schema --mode=ddl --table=X --profile=P` 拿 DDL 文本(N 次调用)
9
+ * 4. 写 <out>/<project>/INDEX.md(表名 + 注释 + DDL 链接)+ <out>/<project>/ddl/<table>.sql
10
+ *
11
+ * 用法:
12
+ * node export-ddl.mjs \
13
+ * --profile zqassis \
14
+ * --tables ./tables.txt \ # 或 --tables all(全库导出)
15
+ * --out ./schema-dump \
16
+ * --project customer-svc
17
+ *
18
+ * tables 文件格式:每行一个表名,# 开头注释行忽略;或 JSON 数组 ["t1","t2"]。
19
+ */
20
+ import { execFileSync } from 'node:child_process';
21
+ import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
22
+ import { resolve, join } from 'node:path';
23
+
24
+ function parseArgs(argv) {
25
+ const args = {};
26
+ for (let i = 0; i < argv.length; i++) {
27
+ const k = argv[i];
28
+ if (k.startsWith('--')) {
29
+ const v = argv[i + 1] && !argv[i + 1].startsWith('--') ? argv[++i] : 'true';
30
+ args[k.slice(2)] = v;
31
+ }
32
+ }
33
+ return args;
34
+ }
35
+
36
+ function readTableList(spec) {
37
+ if (spec === 'all') return null; // null = 不过滤
38
+ const raw = readFileSync(spec, 'utf8');
39
+ const trimmed = raw.trim();
40
+ if (trimmed.startsWith('[')) {
41
+ return JSON.parse(trimmed);
42
+ }
43
+ return trimmed
44
+ .split('\n')
45
+ .map(l => l.trim())
46
+ .filter(l => l && !l.startsWith('#'));
47
+ }
48
+
49
+ function runCgraphx(cmdArgs, { expectJson = false } = {}) {
50
+ const env = { ...process.env, CGRAPHX_WASM_RELAUNCHED: '1' };
51
+ const bin = process.env.CGRAPHX_BIN || 'cgraphx';
52
+ const out = execFileSync(bin, ['db', ...cmdArgs], {
53
+ encoding: 'utf8',
54
+ env,
55
+ stdio: ['ignore', 'pipe', 'pipe'],
56
+ maxBuffer: 64 * 1024 * 1024,
57
+ });
58
+ if (expectJson) return JSON.parse(out);
59
+ return out;
60
+ }
61
+
62
+ /**
63
+ * 提取 db-query 探索补充的 DISCOVERED 块(含起止标记行),供重 dump 时保留。
64
+ * 块格式见 db-query/SKILL.md。无块返回 null。
65
+ */
66
+ function extractDiscoveredBlock(content) {
67
+ const start = content.indexOf('-- === DISCOVERED');
68
+ if (start === -1) return null;
69
+ const endMarker = '-- === END DISCOVERED ===';
70
+ const end = content.indexOf(endMarker, start);
71
+ if (end === -1) return content.slice(start).replace(/\n*$/, '\n');
72
+ return content.slice(start, end + endMarker.length).replace(/\n*$/, '\n');
73
+ }
74
+
75
+ function main() {
76
+ const args = parseArgs(process.argv.slice(2));
77
+ const profile = args.profile;
78
+ const tablesSpec = args.tables;
79
+ const outDir = args.out;
80
+ const project = args.project;
81
+ if (!profile || !tablesSpec || !outDir || !project) {
82
+ process.stderr.write(
83
+ 'Usage: export-ddl.mjs --profile <name> --tables <file|all> --out <dir> --project <name>\n',
84
+ );
85
+ process.exit(5);
86
+ }
87
+
88
+ // 1. 拿全表 + 注释
89
+ process.stderr.write(`[export-ddl] 拉取 ${profile} 的表清单...\n`);
90
+ const tablesResult = runCgraphx(
91
+ ['schema', '--mode=tables', `--profile=${profile}`, '--format=json'],
92
+ { expectJson: true },
93
+ );
94
+ const allTables = new Map(tablesResult.tables.map(t => [t.name, t.comment ?? '']));
95
+
96
+ // 2. 过滤
97
+ const requested = readTableList(tablesSpec);
98
+ const targets = requested === null
99
+ ? [...allTables.keys()]
100
+ : requested.filter(Boolean);
101
+ process.stderr.write(`[export-ddl] 共 ${targets.length} 张表待导出。\n`);
102
+
103
+ // 3. 逐表拉 DDL
104
+ const projectDir = resolve(outDir, project);
105
+ const ddlDir = join(projectDir, 'ddl');
106
+ mkdirSync(ddlDir, { recursive: true });
107
+
108
+ const indexRows = [];
109
+ let ok = 0, missing = 0, failed = 0, preserved = 0;
110
+ for (const table of targets) {
111
+ const comment = allTables.get(table);
112
+ if (comment === undefined) {
113
+ indexRows.push({ table, comment: '(表中不存在)', status: 'missing' });
114
+ missing++;
115
+ continue;
116
+ }
117
+ try {
118
+ const ddl = runCgraphx(
119
+ ['schema', '--mode=ddl', `--table=${table}`, `--profile=${profile}`],
120
+ );
121
+ const filePath = join(ddlDir, `${table}.sql`);
122
+ // 重 dump 时保留 db-query 探索补充的 -- === DISCOVERED === 块
123
+ let out = ddl;
124
+ if (existsSync(filePath)) {
125
+ const old = readFileSync(filePath, 'utf8');
126
+ const discovered = extractDiscoveredBlock(old);
127
+ if (discovered) {
128
+ out = ddl.replace(/\n*$/, '\n') + '\n' + discovered;
129
+ preserved++;
130
+ }
131
+ }
132
+ writeFileSync(filePath, out);
133
+ indexRows.push({ table, comment, status: 'ok' });
134
+ ok++;
135
+ } catch (err) {
136
+ const msg = err instanceof Error ? err.message : String(err);
137
+ process.stderr.write(`[export-ddl] ${table} 失败: ${msg}\n`);
138
+ indexRows.push({ table, comment, status: `failed: ${msg.split('\n')[0]}` });
139
+ failed++;
140
+ }
141
+ }
142
+
143
+ // 4. 写 INDEX.md
144
+ const lines = [
145
+ `# ${project} 表清单`,
146
+ '',
147
+ `共 ${targets.length} 张表(成功 ${ok} / 缺失 ${missing} / 失败 ${failed}),DDL 见 \`ddl/\` 目录。${preserved > 0 ? ` 保留 ${preserved} 张表的 DISCOVERED 补充。` : ''}`,
148
+ '',
149
+ '| 表名 | 注释 | 状态 |',
150
+ '|---|---|---|',
151
+ ];
152
+ for (const r of indexRows) {
153
+ const status = r.status === 'ok' ? '✓' : r.status;
154
+ lines.push(`| \`${r.table}\` | ${r.comment || ''} | ${status} |`);
155
+ }
156
+ writeFileSync(join(projectDir, 'INDEX.md'), lines.join('\n') + '\n');
157
+
158
+ process.stderr.write(
159
+ `[export-ddl] 完成 → ${projectDir}/ (成功 ${ok} / 缺失 ${missing} / 失败 ${failed})\n`,
160
+ );
161
+ }
162
+
163
+ main();
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/dbquery/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4GzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqGzD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/dbquery/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyHzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4GzD"}
@@ -21,6 +21,7 @@ exports.registerDbCommands = registerDbCommands;
21
21
  const node_path_1 = __importDefault(require("node:path"));
22
22
  const index_1 = require("./index");
23
23
  const init_1 = require("./init");
24
+ const identifiers_1 = require("./identifiers");
24
25
  function parseFormat(s) {
25
26
  if (!s || s === 'json')
26
27
  return 'json';
@@ -75,8 +76,16 @@ function outputQueryResult(result, format) {
75
76
  }
76
77
  }
77
78
  }
78
- function outputSchemaResult(result, format) {
79
- // For schema results, json is the only first-class format; table/csv
79
+ function outputSchemaResult(result, mode, format) {
80
+ if (mode === 'ddl' && 'ddl' in result) {
81
+ // ddl emits the raw CREATE TABLE DDL text, not JSON.
82
+ if (format !== 'json') {
83
+ process.stderr.write(`[db-query] --format=${format} ignored for ddl output (always DDL text).\n`);
84
+ }
85
+ process.stdout.write(result.ddl + '\n');
86
+ return;
87
+ }
88
+ // For other schema results, json is the only first-class format; table/csv
80
89
  // fall back to json because the shape varies per mode.
81
90
  if (format !== 'json') {
82
91
  process.stderr.write(`[db-query] --format=${format} not supported for schema output; using json.\n`);
@@ -151,8 +160,16 @@ function registerDbCommands(program) {
151
160
  const projectRoot = process.cwd();
152
161
  try {
153
162
  const format = parseFormat(options.format);
163
+ if (mode === 'ddl' && options.table) {
164
+ try {
165
+ (0, identifiers_1.validateIdentifier)(options.table, 'table');
166
+ }
167
+ catch (e) {
168
+ throw new ArgError(e instanceof Error ? e.message : String(e));
169
+ }
170
+ }
154
171
  const result = await (0, index_1.runSchema)({ mode, table: options.table, profile: options.profile }, projectRoot);
155
- outputSchemaResult(result, format);
172
+ outputSchemaResult(result, mode, format);
156
173
  }
157
174
  catch (err) {
158
175
  renderErrorAndExit(err);
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/dbquery/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/dbquery/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/dbquery/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,OAAO,EAGL,oBAAoB,EAErB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EAKf,MAAM,SAAS,CAAC;AAqDjB;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoD3F;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAiH9F;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAuBrG;AAGD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/dbquery/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,OAAO,EAGL,oBAAoB,EAErB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EAEZ,aAAa,EACb,cAAc,EAKf,MAAM,SAAS,CAAC;AAqDjB;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoD3F;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAmG9F;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAuBrG;AAGD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -148,40 +148,32 @@ async function runSchema(input, projectRoot) {
148
148
  ? await (0, mysql_1.createMysqlConnection)(profile)
149
149
  : await (0, postgres_1.createPostgresConnection)(profile);
150
150
  try {
151
- // For ddl, we need three queries (columns + PK + constraints) merged.
151
+ // ddl: MySQL uses SHOW CREATE TABLE (single query, server-rendered DDL);
152
+ // PG assembles from column query + pg_get_constraintdef + table comment.
152
153
  if (mode === 'ddl') {
153
- let colsRaw, pkRaw, consRaw;
154
+ let result;
154
155
  if (profile.type === 'mysql') {
155
- const colsQ = (0, queries_1.mysqlSchemaQuery)('ddl', table, profile.database);
156
- const pkQ = (0, queries_1.mysqlPrimaryKeySql)(table, profile.database);
157
- const consQ = (0, queries_1.mysqlConstraintsSql)(table, profile.database);
158
- colsRaw = await driver.execute(colsQ.sql, constants_1.QUERY_TIMEOUT_MS, colsQ.params);
159
- pkRaw = await driver.execute(pkQ.sql, constants_1.QUERY_TIMEOUT_MS, pkQ.params);
160
- consRaw = await driver.execute(consQ.sql, constants_1.QUERY_TIMEOUT_MS, consQ.params);
156
+ const showQ = (0, queries_1.mysqlSchemaQuery)('ddl', table, profile.database);
157
+ const raw = await driver.execute(showQ.sql, constants_1.QUERY_TIMEOUT_MS, showQ.params);
158
+ result = (0, format_1.extractMysqlDdl)(raw, table, profile.name, elapsedMs(start));
161
159
  }
162
160
  else {
163
- // PG: ddl SQL is in parametrized already; PK + constraints need extra queries.
164
- colsRaw = await driver.execute(parametrized.sql, constants_1.QUERY_TIMEOUT_MS, parametrized.params);
165
- const regclass = `${profile.schema ?? 'public'}.${table}`;
166
- pkRaw = await driver.execute('SELECT a.attname AS column_name FROM pg_index i ' +
167
- 'JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey) ' +
168
- 'WHERE i.indrelid = $1::regclass AND i.indisprimary ' +
169
- 'ORDER BY array_position(i.indkey, a.attnum)', constants_1.QUERY_TIMEOUT_MS, [regclass]);
170
- consRaw = await driver.execute('SELECT c.conname AS name, ' +
171
- 'CASE WHEN c.contype = \'p\' THEN \'PRIMARY KEY\' ' +
172
- 'WHEN c.contype = \'u\' THEN \'UNIQUE\' ' +
173
- 'WHEN c.contype = \'f\' THEN \'FOREIGN KEY\' ' +
174
- 'WHEN c.contype = \'c\' THEN \'CHECK\' ELSE c.contype::text END AS type ' +
175
- 'FROM pg_constraint c WHERE c.conrelid = $1::regclass ORDER BY c.conname', constants_1.QUERY_TIMEOUT_MS, [regclass]);
161
+ const schema = profile.schema ?? 'public';
162
+ const colsRaw = await driver.execute(parametrized.sql, constants_1.QUERY_TIMEOUT_MS, parametrized.params);
163
+ const consQ = (0, queries_1.postgresConstraintDefsSql)(table, schema);
164
+ const consRaw = await driver.execute(consQ.sql, constants_1.QUERY_TIMEOUT_MS, consQ.params);
165
+ const idxQ = (0, queries_1.postgresIndexDefsSql)(table, schema);
166
+ const idxRaw = await driver.execute(idxQ.sql, constants_1.QUERY_TIMEOUT_MS, idxQ.params);
167
+ const tcQ = (0, queries_1.postgresTableCommentSql)(table, schema);
168
+ const tcRaw = await driver.execute(tcQ.sql, constants_1.QUERY_TIMEOUT_MS, tcQ.params);
169
+ result = (0, format_1.renderPostgresDdl)(colsRaw, consRaw, idxRaw, tcRaw, table, schema, profile.name, elapsedMs(start));
176
170
  }
177
- const result = (0, format_1.formatDdlResult)(colsRaw, pkRaw, consRaw, table, profile.name, elapsedMs(start));
178
171
  (0, logging_1.logQuery)(projectRoot, {
179
172
  timestamp: nowIso(),
180
173
  profile: profile.name,
181
174
  mode,
182
175
  sql: parametrized.sql,
183
176
  durationMs: elapsedMs(start),
184
- rowCount: result.columns.length,
185
177
  status: 'ok',
186
178
  });
187
179
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/dbquery/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/dbquery/executor.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,21 @@
8
8
  import type { ProfilesConfig, ProfilesResult, QueryResult, RawResult, TablesResult, DdlResult, IndexesResult, TableCommentResult } from './types';
9
9
  export declare function formatQueryResult(raw: RawResult, profileName: string, durationMs: number, truncated: boolean): QueryResult;
10
10
  export declare function formatTablesResult(raw: RawResult, profileName: string, durationMs: number): TablesResult;
11
- export declare function formatDdlResult(columnRows: RawResult, primaryKeyRows: RawResult, constraintRows: RawResult, table: string, profileName: string, durationMs: number): DdlResult;
11
+ /**
12
+ * MySQL DDL — extract the `Create Table` column from `SHOW CREATE TABLE`
13
+ * output. `SHOW CREATE TABLE` returns two columns: `Table` (name) and
14
+ * `Create Table` (the DDL). Access by position to be version-safe (the
15
+ * second column's name varies across MySQL/MariaDB versions).
16
+ */
17
+ export declare function extractMysqlDdl(raw: RawResult, table: string, profileName: string, durationMs: number): DdlResult;
18
+ /**
19
+ * PostgreSQL DDL — assemble `CREATE TABLE "schema"."tbl" (...)` from the
20
+ * column query + `pg_get_constraintdef` rows + optional table comment.
21
+ * Column comments emit `COMMENT ON COLUMN` statements after the CREATE TABLE
22
+ * (PG comments cannot go inline in CREATE TABLE). Secondary indexes
23
+ * (non-constraint-backed) emit as `CREATE INDEX ...` statements last.
24
+ */
25
+ export declare function renderPostgresDdl(columnRows: RawResult, constraintDefRows: RawResult, indexDefRows: RawResult, tableCommentRows: RawResult, table: string, schema: string, profileName: string, durationMs: number): DdlResult;
12
26
  export declare function formatIndexesResult(raw: RawResult, table: string, profileName: string, durationMs: number): IndexesResult;
13
27
  export declare function formatTableCommentResult(raw: RawResult, table: string, profileName: string, durationMs: number): TableCommentResult;
14
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/dbquery/format.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,aAAa,EACb,kBAAkB,EAInB,MAAM,SAAS,CAAC;AAyCjB,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,GACjB,WAAW,CAUb;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,YAAY,CAQd;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,SAAS,EACrB,cAAc,EAAE,SAAS,EACzB,cAAc,EAAE,SAAS,EACzB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,SAAS,CA2BX;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,aAAa,CA0Cf;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,kBAAkB,CAMpB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAe3E"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/dbquery/format.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,aAAa,EACb,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAyCjB,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,GACjB,WAAW,CAUb;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,YAAY,CAQd;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,SAAS,CAWX;AAYD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,SAAS,EACrB,iBAAiB,EAAE,SAAS,EAC5B,YAAY,EAAE,SAAS,EACvB,gBAAgB,EAAE,SAAS,EAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,SAAS,CA4DX;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,aAAa,CA0Cf;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,kBAAkB,CAMpB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAe3E"}