pgConfig 0.1.0
This is a complete rewrite of the backend logic starting from data source. This tool previously used manually crafted postgresql.conf
files to compare. These files were time consuming to create and the results were prone to human error/variance.
The rewrite now generates data from the pg_catalog.pg_settings
catalog table. The data is pickled and stored for use by the webapp. The benefits to this approach:
- Fast and easy
- Avoiding human error
- Improved comparisons
Fast and easy updates
Querying a table and persisting the results makes it less overhead to add new versions. The hope with this is it's more likely I'll get around to adding one or more pre-release versions (beta 1, 2, etc.) to help with early planning. I'll also try to get new production versions live within a couple days of the official release.
Improved comparisons
pgConfig now detects and reports changes to data types of configuration options, such as bool
to enum
. See wal_compression history, bool through Postgres 14, switched to enum in 15. Thanks for the suggestion #7 @anayrat!
Reduced history
Legacy approach had postgresql.conf
files back through 9.2. I only created data going back to Postgres 10, so this loses 5 years (9.6, 9.5, 9.4, 9.3, 9.2) of history. My current deployment scripts only made this easy back to Postgres 10 so that's where I stopped.
I considered going back further and standing up older Postgres versions but lost my gumption when I realized I coded some of the current python code to represent Postgres versions as int
. Probably wouldn't be very difficult to refactor, however, the benefits to making data available for EOL versions seem minimal. PRs welcome if someone wants to make those older versions available.
Full Changelog: 0.0.5...0.1.0