feat: keep previous timescaledb versioned libraries in the image #12

Merged
AzSiAz merged 1 commit from feat/timescaledb-previous-so into main 2026-07-17 01:28:15 +02:00
Owner

TimescaleDB's preloaded loader opens timescaledb-X.Y.Z.so matching each
database's catalog version at session start. Shipping only the current
library made any image bump over an existing cluster fail hard: every
session in the database errors with 'could not access file', including
the one needed to run ALTER EXTENSION UPDATE (CNPG Database
reconciliation included). Validated end-to-end in containers, and the
official cloudnative-pg extension image has the same flaw (inspected).

The builder now also extracts the versioned .so of every version PGDG
still publishes (apt-cache madison loop, versioned libraries only; the
loader and SQL scripts stay those of the pinned version), which is what
official Timescale packages do. With the previous library present, a
plain ALTER EXTENSION timescaledb UPDATE completes after an image bump —
validated against the built image with a 2.28.1 catalog.

Also documents the upgrade flow and the timescaledb.disable_load escape
hatch, and recommends immutable tags for dev compose volumes.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com

TimescaleDB's preloaded loader opens timescaledb-X.Y.Z.so matching each database's catalog version at session start. Shipping only the current library made any image bump over an existing cluster fail hard: every session in the database errors with 'could not access file', including the one needed to run ALTER EXTENSION UPDATE (CNPG Database reconciliation included). Validated end-to-end in containers, and the official cloudnative-pg extension image has the same flaw (inspected). The builder now also extracts the versioned .so of every version PGDG still publishes (apt-cache madison loop, versioned libraries only; the loader and SQL scripts stay those of the pinned version), which is what official Timescale packages do. With the previous library present, a plain ALTER EXTENSION timescaledb UPDATE completes after an image bump — validated against the built image with a 2.28.1 catalog. Also documents the upgrade flow and the timescaledb.disable_load escape hatch, and recommends immutable tags for dev compose volumes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
AzSiAz self-assigned this 2026-07-17 01:23:52 +02:00
feat: keep previous timescaledb versioned libraries in the image
All checks were successful
ci/woodpecker/pr/pr Pipeline was successful
983bab72c6
TimescaleDB's preloaded loader opens timescaledb-X.Y.Z.so matching each
database's catalog version at session start. Shipping only the current
library made any image bump over an existing cluster fail hard: every
session in the database errors with 'could not access file', including
the one needed to run ALTER EXTENSION UPDATE (CNPG Database
reconciliation included). Validated end-to-end in containers, and the
official cloudnative-pg extension image has the same flaw (inspected).

The builder now also extracts the versioned .so of every version PGDG
still publishes (apt-cache madison loop, versioned libraries only; the
loader and SQL scripts stay those of the pinned version), which is what
official Timescale packages do. With the previous library present, a
plain ALTER EXTENSION timescaledb UPDATE completes after an image bump —
validated against the built image with a 2.28.1 catalog.

Also documents the upgrade flow and the timescaledb.disable_load escape
hatch, and recommends immutable tags for dev compose volumes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
AzSiAz merged commit 887ffe4505 into main 2026-07-17 01:28:15 +02:00
AzSiAz deleted branch feat/timescaledb-previous-so 2026-07-17 01:28:15 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
AzSiAz/cnpg-extension-image!12
No description provided.