apps/docs/content/guides/database/replication/manual-replication-setup.mdx
This guide covers setting up manual logical replication using external tools. If you prefer a simpler, managed solution, read the Replication setup docs instead.
<Admonition type="note">This guide is for replicating data to external systems using your own tools. For deploying read-only databases across multiple regions, see Read Replicas instead.
</Admonition>To set up replication, the following is recommended:
To create a replication slot, you will need to use the postgres user and follow the instructions in the external replication setup guide.
If you are running Postgres 17 or higher, you can create a new user and grant them replication permissions with the postgres user. For versions below 17, you will need to use the postgres user.
If you are replicating to an external system and using any of the tools below, check their documentation first. Additional information is provided where the setup with Supabase can vary.
<Tabs scrollable size="small" type="underlined" defaultActiveId="estuary" queryGroup="tool"
<TabPanel id="airbyte" label="Airbyte">
Airbyte has the following documentation for setting up Postgres as a source, either in their cloud offering or by self-hosting.
You can follow those steps with the following modifications:
postgres userlogical replication as the replication method (xmin is possible, but not recommended)Airbyte has a known issue where it does not clear WAL files on each successful sync. The recommended workaround is to have a heartbeat table that you write changes to once an hour.>
Fivetran has the following documentation for setting up Postgres as a source.
You can follow those steps with the following modifications:
logical replication as the sync mechanismpostgres user for replicationMaterialize has the following documentation on setting up Postgres as a source.
You can follow those steps with the following modifications:
Stitch has the following documentation on configuring Postgres as a source.
You can follow those steps with the following modifications:
postgres user for replicationAWS DMS has the following documentation on configuring Postgres as a source.
DMS is notably useful if you have infrastructure running in AWS and/or you have custom networking. An additional benefit is that DMS is able to replicate schema changes.
You can follow those steps with the following modifications:
postgres user for replication (or create a new user with replication permissions: ALTER USER <user> WITH REPLICATION;)pluginname to test-decodingwal_sender_timeout and other settings (max_wal_size) using the Supabase CLI