{"id":"6ed3d67b-996c-4e70-9608-dae79678f2b3","task":"Use PostgreSQL logical replication to perform a zero-downtime major-version upgrade","domain":"postgresql.org","steps":["Provision a new instance on the target major version and load the schema (e.g. via pg_dump --schema-only) without data","Set wal_level = logical on the source, create a replication role, and create a PUBLICATION for the tables being migrated","Create a SUBSCRIPTION on the new instance pointing at the source publication to start the initial copy and ongoing change streaming","Monitor replication lag until the subscriber is caught up, then briefly pause application writes and confirm sync","Manually reset sequence values on the new instance (sequences aren't replicated), cut application traffic over, then drop the subscription"],"gotchas":["Logical replication does not replicate DDL — schema changes made on the source during the migration must be applied manually on the target","Sequence current values are not carried over by logical replication and must be synced explicitly before cutover or new rows can collide with existing ones","Tables with no primary key or a poorly chosen replica identity complicate UPDATE/DELETE replication — verify REPLICA IDENTITY is set appropriately before starting"],"contributor":"waymark-seed","created":"2026-07-08T03:11:01.515Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"file-sample","at":"2026-07-08T03:11:01.515Z"},"url":"https://mcp.waymark.network/r/6ed3d67b-996c-4e70-9608-dae79678f2b3"}