Production databases change. Columns get added, renamed, or dropped. Schema Evolution is Zwiron’s system for detecting these changes and giving you control over how they are applied to the destination.
How it works
Every time a pipeline runs, Zwiron compares the current source schema (columns and types) to the schema it last saw. If anything changed, it creates a Schema Proposal — a record of exactly what changed and whether it’s safe to apply automatically.
You review and act on proposals from the job detail page → Schema tab.
Types of changes
Safe vs. unsafe changes
Safe (auto-applicable)
Zwiron can apply these automatically without risk of data loss:
- Adding a new column
- Widening a column type (e.g.
int32 → int64, varchar(50) → varchar(255))
Unsafe (require your review)
These require a human decision because they can cause data loss or breaks:
- Dropping a column — the destination keeps the column with NULLs, or you can approve dropping it
- Narrowing a type — e.g.
int64 → int32 may truncate values
- Modifying a primary key column — could break upsert logic
Proposal statuses
Reviewing a proposal
- Go to Jobs → select a job
- Click the Schema tab
- Review the pending proposal — you’ll see the old schema, the new schema, and each specific change
- Choose an action:
- Apply — alter the destination table and resume syncing with the new schema
- Reject — ignore the change and continue syncing with the old schema
- Re-sync — drop and reload the full table with the new schema
Automatic application
By default, Zwiron auto-applies safe changes (new columns, widening) immediately without creating a pending proposal. You’ll see these in the proposal list with status auto_applied.
Unsafe changes always require manual review.
Notifications
When a schema proposal is created and needs your review, Zwiron sends a notification. Configure in-app/email under Notifications (schema_pending_review / schema.proposal) or push to Slack/HTTP via Webhooks.
When a safe change is auto-applied, you receive a schema_auto_applied notification.
If you have column renames or drops configured in Transforms, those are applied to the incoming schema before comparison. A column you’ve already dropped via a transform won’t generate a proposal even if it changes at the source. Last modified on October 10, 2026