C.W.K.
Stream
Lesson 10 of 10 · published

Staying Current With PostgreSQL

~12 min · operations, learning

Level 0Schema Seedling
0 XP0/86 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

One major a year

PostgreSQL ships a new major version every September. Each one adds material features and improves performance. Treat upgrades as scheduled maintenance, not as scary events: most are uneventful, the documentation is thorough, and the regression risk is small relative to the benefits of staying current.

What to watch each release

  • Release notes (postgresql.org/about/news/) — five minutes well spent.
  • Postgres Weekly newsletter — curated highlights.
  • Crunchy Data and Cybertec blogs — deep dives on new features.
  • Talks from PGCon, PGConf.EU, PGConf.NYC — the architects explaining their work.

The community is the secret weapon

The Postgres community is one of the friendliest in software. The pgsql-general mailing list, the Discord, the Slack — all welcoming. Reading the planner code is open to anyone. Submitting a patch is open to anyone. The same people who designed the JSONB you use answer questions on the mailing list.

One concrete habit

Pick a feature added in the last two majors and use it. uuidv7(). MERGE. CREATE TABLE ... PARTITION BY HASH. Virtual generated columns. The features will only stop being intimidating once you've touched them.

Code

New features by version (highlights)·text
PG 14 (2021): pipelining in libpq, multirange types, JSON subscript, range aggregates
PG 15 (2022): MERGE, public schema lockdown, JSON_TABLE, regex_count
PG 16 (2023): logical replication from standby, parallel hash full join, SQL/JSON
PG 17 (2024): incremental backup, MERGE ... RETURNING, SQL/JSON constructors
PG 18 (2025): uuidv7(), virtual generated columns, OAuth in libpq
Always check the migration notes when upgrading·bash
# Read the major-version release notes for any breaking changes
# https://www.postgresql.org/docs/release/

# Use pg_upgrade for in-place upgrades (fast)
pg_upgrade -b /usr/lib/postgresql/16/bin -B /usr/lib/postgresql/17/bin \
           -d /var/lib/postgresql/16/main -D /var/lib/postgresql/17/main

# Or pg_dump + restore for cross-version cleanliness (slower, simpler)
pg_dump --format=custom mydb > mydb.dump
# install new PG, restore
pg_restore -d mydb mydb.dump

External links

Exercise

Pick one feature from PG 16-18 that you've never used. Write a small example using it. Decide where in your project it could replace an existing pattern (an extension, an ORM hack, an application-side computation).

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.