Single binary, zero dependencies. Lint, diff, generate, and seed — all from your terminal or CI pipeline.
pgdesigner schema.pgd # open in browser UI
pgdesigner generate -o schema.sql schema.pgd # DDL to file
pgdesigner diff old.pgd new.pgd # ALTER SQL to stdout
pgdesigner lint -f json schema.pgd # lint with JSON output
pgdesigner testdata -seed 42 schema.pgd # reproducible test data
pgdesigner convert schema.pdd -o project.pgd # import from other formats Every command accepts .pgd, .pdd, .dbs, .dm2, .sql, or a PostgreSQL connection string as input.
Lint on every PR
- name: Validate schema
run: pgdesigner lint -s error schema.pgd Exit code 1 if errors found → blocks the merge.
Generate migration on schema change
- name: Generate migration
run: |
pgdesigner diff -f sql old.pgd new.pgd > migration.sql
cat migration.sql Seed test database
- name: Seed test data
run: |
pgdesigner generate schema.pgd | psql $DATABASE_URL
pgdesigner testdata -seed 42 -rows 100 schema.pgd | psql $DATABASE_URL | Command | Flags | Description |
|---|---|---|
generate | -o | Full DDL to stdout or file |
diff | -f sql|json | Compare two schemas → ALTER SQL or JSON |
lint | -f text|json, -s, -fix | Validate schema, auto-fix issues |
testdata | -seed, -rows, -tables, -o | Generate realistic INSERT statements |
convert | -o | Import from .pdd/.dbs/.dm2/.sql/DSN |
| Code | Meaning |
|---|---|
0 | Success (no lint errors, no diff changes) |
1 | Lint errors found or diff has changes |
2 | File not found or parse error |
Single statically-linked binary. No runtime dependencies — no Go, no Node, no Python. Works on:
curl -L https://github.com/vmkteam/pgdesigner/releases/latest/download/pgdesigner-linux-amd64.tar.gz | tar xz
./pgdesigner lint schema.pgd