For CDC, deletes and truncates apply only to destinations whose key is the
source key and whose model reads only that stream. Soft delete needs a boolean
_arcyria_deleted column. MongoDB destinations support hard delete only. See
PostgreSQL CDC setup.
Delete detection
Delete detection is off by default. When you enable it on an Incremental stream, a successful run checks on a schedule (every 24 hours by default) whether each destination key still exists in the source. Destination rows whose key is missing are then:- Soft delete: marked with
_arcyria_deleted = true, plus_arcyria_deleted_atif that column exists. The destination table must have a boolean_arcyria_deletedcolumn. If the key returns to the source, the flag is cleared. - Hard delete: removed from the destination table.
- the stream has a primary key;
- the destination Upsert key is the same columns as the source primary key;
- the destination model reads only that stream; and
- the destination is PostgreSQL, MySQL, or MongoDB (hard delete only).
_id, so the destination key must be _id.
Destinations that do not meet these requirements are skipped and the run
records the reason. Arcyria refuses a check that would remove more than half of
a destination’s rows, because that usually means the source is wrong or empty.
Delete detection never fails a run.
