Skip to content

Commit 0c9eec5

Browse files
author
umairshahid
committed
Moving the relevant 'Limitations' from pglogical_output to pglogical
1 parent ded7077 commit 0c9eec5

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,31 @@ maintains solid backward compatibility but only limited forward compatibility.
460460

461461
Replicating between different minor versions makes no difference at all.
462462

463+
### Doesn't replicate DDL
464+
465+
Logical decoding doesn't decode catalog changes directly. So the plugin can't
466+
just send a `CREATE TABLE` statement when a new table is added.
467+
468+
If the data being decoded is being applied to another PostgreSQL database then
469+
its table definitions must be kept in sync via some means external to the logical
470+
decoding plugin its self, such as:
471+
472+
* Event triggers using DDL deparse to capture DDL changes as they happen and write them to a table to be replicated and applied on the other end; or
473+
* doing DDL management via tools that synchronise DDL on all nodes
474+
475+
### Doesn't replicate global objects/shared catalog changes
476+
477+
PostgreSQL has a number of object types that exist across all databases, stored
478+
in *shared catalogs*. These include:
479+
480+
* Roles (users/groups)
481+
* Security labels on users and databases
482+
483+
Such objects cannot be replicated by `pglogical_output`. They're managed with DDL that
484+
can't be captured within a single database and isn't decoded anyway.
485+
486+
DDL for global object changes must be synchronized via some external means.
487+
463488
## How does pglogical differ from BDR?
464489

465490
`pglogical` is based on technology developed for BDR and shares some code with

0 commit comments

Comments
 (0)