Feat generated headers column order #28

Merged
warkanum merged 2 commits from feat-generated-headers-column-order into master 2026-09-10 20:22:51 +00:00
Owner
  1. 19a2cc1 — Generated headers + DBML column order

Version stamping in generated files

  • New pkg/buildinfo/ package: Version / BuildDate set via ldflags, with VCS build-info fallback. cmd/relspec (root.go, version.go, main.go) now sources version from it instead of local vars.
  • Writers emit RelSpec (built: ) in file headers: bun, gorm, drizzle, pgsql (+ migration writer), mssql, sqlite.

Column ordering fixes

  • pgsql/writer.go: getSortedColumns now sorts by Sequence then Name, so the streaming WriteSchema/WriteDatabase path preserves source column order.
  • dbml/reader.go: mergeTable re-bases merged-in column Sequence values past the existing max — fixes colliding sequences (and alphabetical fallback) when one table is split across multiple DBML files. Overwriting columns keep their original position.

Tests: bun/gorm header + column-order tests; dbml multi-file merge ordering test.

  1. ca226e8 — Release process + formatting
  • Makefile: release target now depends on lint fmt-check test build (runs in order before tagging/pushing). Replaced a broken inline recipe.
  • pkg/buildinfo/buildinfo.go: +16 lines (gofumpt).
  • Formatting fixes (gofumpt/goimports) in drizzle/template_data.go, cmd/relspec/root.go, version.go.
1. 19a2cc1 — Generated headers + DBML column order Version stamping in generated files - New pkg/buildinfo/ package: Version / BuildDate set via ldflags, with VCS build-info fallback. cmd/relspec (root.go, version.go, main.go) now sources version from it instead of local vars. - Writers emit RelSpec <version> (built: <date>) in file headers: bun, gorm, drizzle, pgsql (+ migration writer), mssql, sqlite. Column ordering fixes - pgsql/writer.go: getSortedColumns now sorts by Sequence then Name, so the streaming WriteSchema/WriteDatabase path preserves source column order. - dbml/reader.go: mergeTable re-bases merged-in column Sequence values past the existing max — fixes colliding sequences (and alphabetical fallback) when one table is split across multiple DBML files. Overwriting columns keep their original position. Tests: bun/gorm header + column-order tests; dbml multi-file merge ordering test. 2. ca226e8 — Release process + formatting - Makefile: release target now depends on lint fmt-check test build (runs in order before tagging/pushing). Replaced a broken inline recipe. - pkg/buildinfo/buildinfo.go: +16 lines (gofumpt). - Formatting fixes (gofumpt/goimports) in drizzle/template_data.go, cmd/relspec/root.go, version.go.
warkanum added 2 commits 2026-09-10 20:22:47 +00:00
- Add pkg/buildinfo with Version/BuildDate (set via ldflags, VCS fallback);
  cmd/relspec now sources version info from it
- Emit "RelSpec <version> (built: <date>)" in generated file headers for
  bun, gorm, drizzle, pgsql (incl. migration), mssql, sqlite writers
- pgsql writer: getSortedColumns now sorts by Sequence then Name so the
  streaming WriteSchema/WriteDatabase path preserves source column order
- dbml reader: mergeTable re-bases merged-in column Sequence values past the
  existing max, fixing colliding sequences (and alphabetical fallback) when a
  table is split across multiple DBML files
- Tests for bun/gorm header + column order, and dbml multi-file merge ordering
warkanum merged commit a84592374c into master 2026-09-10 20:22:51 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wdevs/relspecgo#28