1. Glossario/

Publication

PostgreSQL Logical Replication Publication

Publication è un oggetto della replica logica PostgreSQL che definisce un insieme di tabelle i cui cambiamenti vengono resi disponibili per la replica. Risiede sul publisher (il database sorgente) e può essere consumata da uno o più subscriber indipendenti, ciascuno con la propria subscription.

Come si crea #

Si dichiara con CREATE PUBLICATION specificando le tabelle da includere. Dalla versione 15 è possibile aggiungere anche una clausola WHERE per filtrare le righe replicate:

CREATE PUBLICATION mia_pub
  FOR TABLE clienti, ordini
  WHERE (status = 'active');

Cosa non contiene #

Una publication trasporta cambiamenti DML (INSERT, UPDATE, DELETE, TRUNCATE) ma non DDL: le modifiche di schema (ALTER TABLE, CREATE INDEX) devono essere applicate manualmente su entrambi i lati della replica, o con strumenti di orchestrazione esterni. Anche le sequence non sono replicate per default.

Quando si usa #

Tipicamente in scenari di migrazione cross-versione di PostgreSQL, integrazione CDC verso un data warehouse, o replica selettiva di sotto-insiemi di tabelle su nodi di staging. Una stessa publication può alimentare più subscriber in parallelo, ognuno con il proprio ritmo di consumo.