Database changes are the highest-risk part of most release pipelines because there is usually no safe place to try them. Data branches make that place explicit: a branch is a full copy of the workspace (data sources, pipes, endpoints, tokens, fixtures) that you can iterate against without touching production. When the change is ready, the branch is merged.
This is the same workflow developers expect from git, applied to the data layer. CI can spin up a branch on every pull request, run end-to-end checks against the proposed schema, and tear it down on merge. Schema migrations that previously needed a maintenance window run as a normal code review.
Branches are not a staging environment. Each branch is ephemeral, scoped to a change, and isolated from every other branch, so multiple developers can have conflicting in-flight schemas at the same time without stepping on each other.
