Replicate to another Postgres database using Logical Replication
For this example, you will need:
- A Supabase project
- A PostgreSQL database (running v10 or newer)
You will be running commands on both of these databases to publish changes from the Supabase database to the external database.
- Create a
publication
on the Supabase database:
- Also on the Supabase database, create a
replication slot
:
- Now we will connect to our external database and subscribe to our
publication
Note: ):
This will need a direct connection to your database and you can find the connection info in the Dashboard.
You will also need to ensure that ipv6 is supported by your replication destination.
If you would prefer not to use the postgres
user, then you can run CREATE ROLE <user> WITH REPLICATION;
using the postgres
user.
create_slot
is set to false
because slot_name
is provided and the slot was already created in Step 2.
To copy data from before the slot was created, set copy_data
to true
.
- Add all the tables that you want replicated to the publication.
- Check the replication status using
pg_stat_replication