Skip to content

0.1.0

Latest
Compare
Choose a tag to compare
@rustprooflabs rustprooflabs released this 21 Jan 15:53
· 4 commits to main since this release
1cda39a

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