Skip to main content

Required settings

  • Host name
  • Port (default is 5432)
  • Service account

Creating a service account

Please make sure you create a service account that has the ability to create on the database and is the owner of all the schemas you plan to sync into.

Advanced features

Partition mirroring

Partition mirroring creates each partitioned PostgreSQL source table as a partitioned destination table with the same partitions. Artie writes to the parent table, and PostgreSQL routes each row to its partition.
It requires a PostgreSQL source. Enable Mirror source partitions in your pipeline’s destination advanced settings, then add the partitioned parent table, not its individual partitions.

When it runs

Partitions added to the source are mirrored at most once a day, so create them at least a day before rows arrive, for example with pg_partman’s premake.

Key behaviors

  • Supports RANGE, LIST, and HASH partitions, DEFAULT partitions, and sub-partitions.
  • Only runs CREATE TABLE IF NOT EXISTS, one table per transaction, with a 5-second lock timeout. A partition that times out waiting for a lock is created on the next run.
  • Never detaches, drops, renames, truncates, or moves rows. If you detach, split, merge, or rename source partitions, update the destination manually.
  • If a backfill is set to drop the destination table first, Artie truncates it instead, so the partitions stay in place.
  • Doesn’t convert an existing unpartitioned destination table. The deploy fails if that table is about to be backfilled.
Without a DEFAULT partition, the write fails and Artie retries it until the partition is created. With a DEFAULT partition, the row lands in the default, and the new partition can’t be created until you move those rows out of the default partition.
A partition replicated on its own instead of through its parent, foreign-table partitions, tables unified across schemas, table or partition names longer than 63 bytes, and partition key columns with uppercase letters or special characters, because Artie lowercases destination column names.