Sumeta — the company behind Bridge
Docs · Reference

Schema evolution: the 4×3 matrix

Which schema changes are applied automatically, which require a decision, and what happens to historical data afterwards. This page is the contract behind the phrase "automatic schema evolution".

Docs · Reference · Updated 2026-11-03 · Applies to current Bridge releases

Definition

Schema evolution is the set of policies a pipeline applies when a source table's structure changes: creating, renaming or removing columns, and widening or narrowing types, without breaking the target or losing data.

The matrix

Behaviour follows connector and version; this matrix is the default policy.
ChangeAutomatic?Bridge behaviourBackfill
Add nullable columnYesTarget column created; new rows propagate immediatelyNot required
Add column with defaultYesColumn created; default applied to new rows onlyOptional for historical rows
Rename columnNo — confirmDetected as possible rename; proposes mapping before actingOptional
Drop columnNoTarget column retained, writes stop; never dropped silentlyNot applicable
Widen type (varchar 50→200)YesApplied automaticallyNot required
Narrow type / precision lossNo — blockPipeline blocks until confirmedRequired if data must be re-derived
Change primary keyNoTreated as new lineage; requires explicit setupYes

Three defaults are worth stating plainly because they are unusual:

  • Drop never deletes. A source drop stops writes to the target column; removing data is a separate, explicit action.
  • Narrowing blocks. Anything that can lose precision stops the pipeline rather than applying a lossy cast.
  • Rename is a decision. A rename and a drop-plus-add are indistinguishable from the log alone, so the pipeline asks instead of guessing.

Backfill after a change

Evolving a schema answers "what happens to new rows". The harder question is whether the historical window is still consistent. After an approved change Bridge can re-read the affected range and reconcile the target, so a schema change does not leave a permanent seam in the data.

Backfill is bounded by the same log retention window as normal recovery. If the change happened before your retention horizon, the historical range cannot be recovered from logs and must come from a snapshot instead.

Verifying it in a POC

Five tests that cover the matrix.
TestWhat to doPass condition
AdditiveAdd a nullable column and insert rowsColumn appears, no pipeline stop, no manual step
RenameRename a column in the sourcePipeline flags it and waits rather than duplicating
DropDrop a column in the sourceTarget column retained; no data loss
NarrowingReduce a varchar lengthPipeline blocks with a clear message
BackfillApprove a change, then request backfillHistorical rows reconciled for the affected range

Schema evolution questions

Does DDL sync cost extra?

DDL synchronisation is included on Business and Enterprise plans; it is not a per-change charge.

Can I force a destructive change?

Yes, after explicit confirmation. The default is to block; nothing destructive is applied without an action.

Is schema evolution available on all connectors?

It applies to the database connectors that report schema metadata through their log or catalog. File and API sources use inference and follow a different path.

How is backfill different from a re-sync?

Backfill re-reads a bounded historical range to reconcile a known change. A re-sync rebuilds the whole target.