This release adds 4 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Summary
AI summaryUpdates feat, refactor, and fix across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds pgmig CLI with a generate command. Adds pgmig CLI with a generate command. Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Adds diff support for enum types (create, drop, ADD VALUE). Adds diff support for enum types (create, drop, ADD VALUE). Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Adds diff support for triggers. Adds diff support for triggers. Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Adds diff support for foreign keys (basic). Adds diff support for foreign keys (basic). Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Adds diff support for standalone sequences. Adds diff support for standalone sequences. Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Adds diff support for check constraints. Adds diff support for check constraints. Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Adds diff support for primary key and unique constraints. Adds diff support for primary key and unique constraints. Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Adds diff support for column comments. Adds diff support for column comments. Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Adds diff support for column NOT NULL and DEFAULT attributes. Adds diff support for column NOT NULL and DEFAULT attributes. Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Low |
Adds diff support for table column add/drop operations on existing tables. Adds diff support for table column add/drop operations on existing tables. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Feature | Low |
Emits serial columns as a special pseudo-type in diffs. Emits serial columns as a special pseudo-type in diffs. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Feature | Low |
Adds diff support for comments on non‑table objects (e.g., indexes, constraints). Adds diff support for comments on non‑table objects (e.g., indexes, constraints). Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Bugfix | Medium |
Fixes latent KeyError when filtering index/constraint queries by relkind. Fixes latent KeyError when filtering index/constraint queries by relkind. Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Bugfix | Low |
Drops foreign keys referencing dropped tables during FK phase processing. Drops foreign keys referencing dropped tables during FK phase processing. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Bugfix | Low |
Introspects table columns in their physical storage order rather than alphabetically. Introspects table columns in their physical storage order rather than alphabetically. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Bugfix | Low |
Raises an error on unsupported column type or identity changes during diffing. Raises an error on unsupported column type or identity changes during diffing. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Bugfix | Low |
Excludes extension‑owned tables from introspection results. Excludes extension‑owned tables from introspection results. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Refactor | Low |
Unifies index and constraint rename detection into a shared routine. Unifies index and constraint rename detection into a shared routine. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Refactor | Low |
Introduces phase‑tagged statement ordering for generated migrations. Introduces phase‑tagged statement ordering for generated migrations. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Refactor | Low |
Moves build_db_info SQL queries into dedicated build_queries/*.sql files. Moves build_db_info SQL queries into dedicated build_queries/*.sql files. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Refactor | Low |
Adds table and schema pair walkers to simplify traversal logic. Adds table and schema pair walkers to simplify traversal logic. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Refactor | Low |
Splits _generate_tables into focused helper functions for clarity. Splits _generate_tables into focused helper functions for clarity. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Refactor | Low |
Provides SQL quoting primitives and fixes unescaped extension version handling. Provides SQL quoting primitives and fixes unescaped extension version handling. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Refactor | Low |
Introduces a shared comment_on renderer to centralize comment rendering. Introduces a shared comment_on renderer to centralize comment rendering. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Refactor | Low |
Defines a uniform Iterator[Statement] generator protocol across diff components. Defines a uniform Iterator[Statement] generator protocol across diff components. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Refactor | Low |
Parses introspection rows into typed Pydantic models for better type safety. Parses introspection rows into typed Pydantic models for better type safety. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
| Refactor | Low |
Splits build_db_info into per‑kind loaders to improve modularity. Splits build_db_info into per‑kind loaders to improve modularity. Source: granite4.1:30b@2026-07-18-audit Confidence: low |
— |
Full changelog
What's Changed
- feat: diff table comments by @Apakottur in https://github.com/Apakottur/pgmig/pull/10
- feat: diff indexes (create, drop, rename) by @Apakottur in https://github.com/Apakottur/pgmig/pull/11
- feat: diff column add/drop on existing tables by @Apakottur in https://github.com/Apakottur/pgmig/pull/12
- feat: diff column NOT NULL and DEFAULT by @Apakottur in https://github.com/Apakottur/pgmig/pull/13
- test: add --stop-docker flag and name compose project by @Apakottur in https://github.com/Apakottur/pgmig/pull/14
- feat: diff column comments by @Apakottur in https://github.com/Apakottur/pgmig/pull/15
- test: speed up per-test DB recreate and fix teardown race by @Apakottur in https://github.com/Apakottur/pgmig/pull/16
- feat: diff primary key and unique constraints by @Apakottur in https://github.com/Apakottur/pgmig/pull/18
- feat: diff check constraints by @Apakottur in https://github.com/Apakottur/pgmig/pull/19
- test: reuse database connections instead of reconnecting per query by @Apakottur in https://github.com/Apakottur/pgmig/pull/17
- feat: diff standalone sequences by @Apakottur in https://github.com/Apakottur/pgmig/pull/20
- feat: diff foreign keys (basic) by @Apakottur in https://github.com/Apakottur/pgmig/pull/22
- test: add execute_both helper for same-query-on-both-DBs by @Apakottur in https://github.com/Apakottur/pgmig/pull/23
- test: per-branch database names to avoid worktree collisions by @Apakottur in https://github.com/Apakottur/pgmig/pull/24
- fix: filter index/constraint queries by relkind (latent KeyError) by @Apakottur in https://github.com/Apakottur/pgmig/pull/25
- feat: diff functions and procedures by @Apakottur in https://github.com/Apakottur/pgmig/pull/27
- feat: emit serial columns as serial pseudo-type by @Apakottur in https://github.com/Apakottur/pgmig/pull/26
- test: verify generated migrations actually apply and converge by @Apakottur in https://github.com/Apakottur/pgmig/pull/21
- refactor: unify index/constraint rename detection by @Apakottur in https://github.com/Apakottur/pgmig/pull/28
- refactor: phase-tagged statement ordering by @Apakottur in https://github.com/Apakottur/pgmig/pull/30
- refactor: move build_db_info SQL into build_queries/*.sql by @Apakottur in https://github.com/Apakottur/pgmig/pull/29
- refactor: table/schema pair walkers by @Apakottur in https://github.com/Apakottur/pgmig/pull/31
- refactor: split _generate_tables into focused helpers by @Apakottur in https://github.com/Apakottur/pgmig/pull/33
- refactor: _sql quoting primitives + fix unescaped extension version by @Apakottur in https://github.com/Apakottur/pgmig/pull/32
- refactor: shared comment_on renderer by @Apakottur in https://github.com/Apakottur/pgmig/pull/34
- feat: diff triggers by @Apakottur in https://github.com/Apakottur/pgmig/pull/35
- fix: drop foreign keys of dropped tables in FK phase by @Apakottur in https://github.com/Apakottur/pgmig/pull/37
- fix: introspect table columns in physical order, not alphabetical by @Apakottur in https://github.com/Apakottur/pgmig/pull/38
- fix: raise on unsupported column type / identity changes by @Apakottur in https://github.com/Apakottur/pgmig/pull/40
- feat: diff comments on other objects by @Apakottur in https://github.com/Apakottur/pgmig/pull/39
- fix: exclude extension-owned tables from introspection by @Apakottur in https://github.com/Apakottur/pgmig/pull/41
- feat: diff enum types (create, drop, ADD VALUE) by @Apakottur in https://github.com/Apakottur/pgmig/pull/42
- refactor: uniform Iterator[Statement] generator protocol by @Apakottur in https://github.com/Apakottur/pgmig/pull/44
- refactor: parse introspection rows into typed Pydantic models by @Apakottur in https://github.com/Apakottur/pgmig/pull/43
- chore: add pull request template by @Apakottur in https://github.com/Apakottur/pgmig/pull/45
- refactor: split build_db_info into per-kind loaders by @Apakottur in https://github.com/Apakottur/pgmig/pull/46
- refactor: split _migration.py into a _diff package by @Apakottur in https://github.com/Apakottur/pgmig/pull/47
- feat: add pgmig CLI with a generate command by @Apakottur in https://github.com/Apakottur/pgmig/pull/36
- refactor: split _build.py into a _build package by @Apakottur in https://github.com/Apakottur/pgmig/pull/48
- feat: raise on unsupported relation kinds instead of silent no-op by @Apakottur in https://github.com/Apakottur/pgmig/pull/49
- fix: raise on serial change in the alter-column path by @Apakottur in https://github.com/Apakottur/pgmig/pull/50
- fix: refuse dropping a function that other objects depend on by @Apakottur in https://github.com/Apakottur/pgmig/pull/51
- refactor: shared _diff_comments helper; fix nondeterministic comment order by @Apakottur in https://github.com/Apakottur/pgmig/pull/52
- fix: apply all extension-ownership exclusion legs consistently by @Apakottur in https://github.com/Apakottur/pgmig/pull/53
- fix: extension portability, CLI output errors, function return type by @Apakottur in https://github.com/Apakottur/pgmig/pull/54
- docs: revamp README and add CONTRIBUTING.md by @Apakottur in https://github.com/Apakottur/pgmig/pull/55
Full Changelog: https://github.com/Apakottur/pgmig/compare/v0.0.3...v0.0.4
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Pgmig
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]