Generate Markdown table definition documents from DDL files.
- DDL is treated as SSOT.
- SQL parsing uses
rawsql-ts. CREATE TABLEandALTER TABLE ... ADD CONSTRAINTare applied across the full DDL stream.COMMENT ON TABLE/COLUMNis parsed viarawsql-ts.
pnpm --filter @rawsql-ts/ddl-docs-cli buildddl-docs generate --ddl-dir ztd/ddl --out-dir ztd/docs/tablesShow help:
ddl-docs help
ddl-docs help generate
ddl-docs help pruneGenerated layout:
ztd/docs/tables/index.mdztd/docs/tables/<schema>/index.mdztd/docs/tables/<schema>/<table>.md
Options:
--ddl-dir <directory>repeatable recursive directory input--ddl-file <file>repeatable explicit file input--ddl <file>alias of--ddl-file--ddl-glob <pattern>repeatable glob pattern input--extensions <csv>default.sql--out-dir <directory>output root (defaultztd/docs/tables)--config <path>optionalztd.config.jsonpath--default-schema <name>schema override for unqualified table names--search-path <csv>schema search path override--no-indexskip index page generation--strictfail when warnings exist--column-order <mode>definition(default) orname
Prune generated files:
ddl-docs prune --out-dir ztd/docs/tablesPrune preview:
ddl-docs prune --out-dir ztd/docs/tables --dry-runOptional orphan cleanup:
ddl-docs prune --out-dir ztd/docs/tables --prune-orphansThis tool emits plain Markdown files and index pages.
If you prefer VitePress-side navigation generation, run with --no-index and let your site config build navigation from the generated table pages.
Warnings are emitted to <outDir>/_meta/warnings.json.
Use --strict in CI to treat warnings as failures.
Current implementation prioritizes correctness by applying the full DDL stream and aggregating table metadata before rendering. For large schemas (for example, ~300 tables), follow-up optimization should focus on reducing peak memory by keeping only compact table metadata and discarding statement-level objects early.
See packages/ddl-docs-cli/examples/minimal-e2e.