Releases: Apakottur/pgmig
Releases · Apakottur/pgmig
Release list
v1.0.1
What's Changed
- refactor: introduce _IntrospectionRow / _IntrospectionRowWithSchema base rows by @Apakottur in #176
- refactor: centralize query files in an IntrospectionQuery enum by @Apakottur in #177
- feat: add --ignore-schema to exclude schemas from the diff by @Apakottur in #175
Full Changelog: v1.0.0...v1.0.1
v1.0.0
What's Changed
- feat: diff privileges (GRANT/REVOKE) for schemas, sequences, functions by @Apakottur in #173
- feat: diff ALTER DEFAULT PRIVILEGES (pg_default_acl) by @Apakottur in #174
Full Changelog: v0.2.0...v1.0.0
v0.2.0
What's Changed
- perf: reset test databases in place instead of drop/recreate by @Apakottur in #159
- feat: preview generated release notes before tagging by @Apakottur in #160
- feat: rename enum values in place via ALTER TYPE RENAME VALUE by @Apakottur in #161
- test: cover constraint triggers end-to-end (CREATE CONSTRAINT TRIGGER) by @Apakottur in #163
- feat: alter composite type attributes in place by @Apakottur in #164
- feat: diff trigger enable/disable state (tgenabled) by @Apakottur in #162
- feat: diff INSTEAD OF triggers on views by @Apakottur in #165
- feat: rewrite enum type for value removal / reorder by @Apakottur in #167
- feat: support range types (CREATE TYPE ... AS RANGE) by @Apakottur in #166
- feat: recreate function dependents on return-type change by @Apakottur in #168
- feat!: flip owner reconciliation to opt-in (--include-owner) by @Apakottur in #169
- feat: support row-level security (table flags + policies) by @Apakottur in #170
- feat: diff ownership for non-table objects by @Apakottur in #171
- feat: diff table privileges (GRANT / REVOKE) by @Apakottur in #172
Full Changelog: v0.1.1...v0.2.0
v0.1.1
What's Changed
- fix: clear PgmigApiError when generate() is called from a running event loop by @Apakottur in #128
- feat: support exclusion constraints (EXCLUDE USING ...) by @Apakottur in #130
- feat: sync UNLOGGED tables by @Apakottur in #129
- feat: topologically order composite type create/drop by dependency by @Apakottur in #131
- feat: sync view options (security_invoker, security_barrier, WITH CHECK OPTION) by @Apakottur in #132
- feat: support partition bound changes via detach + re-attach by @Apakottur in #133
- feat: support generated-column expression changes and VIRTUAL columns (PG18) by @Apakottur in #134
- feat: detect and sync column collation changes by @Apakottur in #135
- feat: introspect and diff manually owned sequences (OWNED BY) by @Apakottur in #137
- feat: diff identity column sequence options (start, increment, cache, min/max, cycle) by @Apakottur in #136
- refactor: extract key dataclasses and replace record tuples with explicit types by @Apakottur in #138
- feat: diff table REPLICA IDENTITY by @Apakottur in #139
- feat: recreate partitioned tables on partition key/strategy change by @Apakottur in #141
- feat: diff UNLOGGED sequences (PG15+) by @Apakottur in #140
- refactor: collapse ViewKey into RelationKey by @Apakottur in #142
- feat: order materialized-view dependencies (matview-on-view, matview-on-matview) by @Apakottur in #143
- refactor: add Table.column_by_name and use it for name lookups by @Apakottur in #144
- perf: use a heap for the topological_sort ready set by @Apakottur in #148
- refactor: freeze remaining model dataclasses and dedupe test constant by @Apakottur in #150
- refactor: generalize collect_relations key and simplify function drop order by @Apakottur in #146
- refactor: unify drop-order idiom and generalize the schema-flatten helper by @Apakottur in #151
- perf: cache bundled query reads and order functions by alias by @Apakottur in #149
- refactor: dedup index loaders for tables and matviews by @Apakottur in #152
- fix: run introspection in one REPEATABLE READ snapshot by @Apakottur in #147
- test: cover NULLS NOT DISTINCT for unique constraints and indexes (PG15+) by @Apakottur in #153
- test: cover PG18 temporal constraints (WITHOUT OVERLAPS, PERIOD FK) by @Apakottur in #154
- perf: validate NOT VALID constraints in place instead of drop+re-add by @Apakottur in #155
- feat: alter deferrability in place for foreign keys by @Apakottur in #156
- feat: alter enforced state in place for NOT ENFORCED foreign keys (PG18) by @Apakottur in #157
- perf: skip introspection queries for absent object classes by @Apakottur in #158
Full Changelog: v0.1.0...v0.1.1
v0.1.0
What's Changed
- fix: keep matview indexes when it is recreated over a retyped column by @Apakottur in #99
- fix: omit USING when altering type of a generated column by @Apakottur in #100
- fix: close dependency-query gaps causing false refusals and a failed apply by @Apakottur in #101
- fix: guard more unsupported catalogs against false convergence by @Apakottur in #102
- refactor: drop misleading frozen=True from models with mutable fields by @Apakottur in #103
- fix: emit comment for a create that reuses a rename-vacated name by @Apakottur in #105
- refactor: extract _alter_shared_column from _alter_columns by @Apakottur in #106
- refactor: give matview indexes their own phase after VIEW_CREATE by @Apakottur in #107
- fix: depend on bare psycopg; use SPDX license string by @Apakottur in #104
- feat: raise UnsupportedChangeError for documented limitations by @Apakottur in #109
- feat: order function drops by dependency by @Apakottur in #89
- fix: rewrite the --output file on an empty diff by @Apakottur in #108
- refactor: rename api module to _api by @Apakottur in #111
- refactor: rename _build module to _introspect by @Apakottur in #112
- refactor: route refused changes through a PgmigUnsupportedError taxonomy by @Apakottur in #110
- refactor: route single-object comment diffs through diff_single_comment by @Apakottur in #114
- refactor: single source of truth for recreated-matview predicate by @Apakottur in #115
- refactor: tighten view_dependencies.sql and forbid extra columns on query rows by @Apakottur in #113
- refactor: unify topological sort and add cycle detection to function drops by @Apakottur in #116
- docs: fix stale exception name in generate_setup docstring by @Apakottur in #118
- refactor: deparse each index once in indexes.sql by @Apakottur in #121
- refactor: dedup the view and materialized-view loaders by @Apakottur in #119
- refactor: compute test DB names lazily instead of at import by @Apakottur in #120
- refactor: introspection context and query/result renames by @Apakottur in #123
- refactor: introspect databases with async psycopg by @Apakottur in #124
- feat: add async agenerate() and make assert_diff async by @Apakottur in #125
- chore: add pytest-sugar as a dev dependency by @Apakottur in #126
- test: convert remaining test suite to async by @Apakottur in #127
- refactor: introspect databases with async psycopg by @Apakottur in #122
- perf: memoize retyped column readers per diff by @Apakottur in #117
Full Changelog: v0.0.10...v0.1.0
v0.0.10
What's Changed
- fix: configure introspection session at transaction level for pgbouncer by @Apakottur in #98
Full Changelog: v0.0.9...v0.0.10
v0.0.9
What's Changed
- test: group integration tests under tests/api/ by @Apakottur in #90
- test: add gen_setup.assert_diff and migrate all tests to it by @Apakottur in #91
- fix: keep comments in sync when an object is renamed by @Apakottur in #92
- fix: raise on unmodelled objects instead of falsely converging by @Apakottur in #94
- fix: introspect triggers on partitioned parents, skip partition clones by @Apakottur in #95
- fix: handle matview dependency gaps (apply-time failures and false refusals) by @Apakottur in #93
- refactor: dedup diff scaffolds and thread index CONCURRENTLY into rendering by @Apakottur in #96
- fix: set read-only via connection attribute for pgbouncer compatibility by @Apakottur in #97
Full Changelog: v0.0.8...v0.0.9
v0.0.8
What's Changed
- feat: diff indexes on materialized views by @Apakottur in #82
- feat: emit identity columns (GENERATED ... AS IDENTITY) by @Apakottur in #83
- feat: order view-on-column dependencies by @Apakottur in #84
- feat: support partitioned tables by @Apakottur in #85
- feat: emit USING cast for column type changes by @Apakottur in #86
- feat: support generated columns (create/drop) by @Apakottur in #87
- feat: support identity changes on the ALTER path by @Apakottur in #88
Full Changelog: v0.0.7...v0.0.8
v0.0.7
What's Changed
- feat: ship py.typed marker (PEP 561) by @Apakottur in #79
- refactor: store diff Context in a ContextVar by @Apakottur in #80
- feat: add --ignore-owner to suppress ALTER ... OWNER TO by @Apakottur in #81
Full Changelog: v0.0.6...v0.0.7
v0.0.6
What's Changed
- feat: support basic column type changes by @Apakottur in #73
- feat: support table ownership (ALTER TABLE ... OWNER TO) by @Apakottur in #74
- feat: support materialized views (basic) by @Apakottur in #75
- feat: support composite types (create/drop) by @Apakottur in #77
- feat: order view-on-view dependencies by @Apakottur in #76
Full Changelog: v0.0.5...v0.0.6