Release versus Plan
A Release answers which files to use. A Plan specifies the work and its targets and tracks the change through deployment. The Release has no deployment targets of its own and can be referenced by multiple Plans. A UI Plan can also use SQL directly, without a Release. Creating a Release saves the files. Execution happens through a Plan’s Rollout, where each target has its own task results.What the files describe
A Release uses one of two change models:- Versioned migrations describe changes to execute in order, such as creating a table and then adding a column. Bytebase records applied versions separately for each database and skips versions already applied there.
- Declarative schema definitions describe the desired schema. Bytebase compares them with each target’s schema to generate the required changes. Different starting schemas can produce different SQL.
Create a Release
An integration creates a Release through the API. In the documented GitOps workflow, CI checks the files during pull-request review; after merge, the deployment job usesbytebase-action rollout to create the Release, a Plan referencing it, and the Rollout.
Release contents cannot be edited. Correct unapplied files in a new Release. If a migration has already run, add a new migration version to make the next change rather than editing the applied file.
Deploy the same files across environments
A Plan that targets both Test and Prod can deploy the Release to Test first, then continue to Prod. The promotion job reuses the same Plan and Release.--plan, the command uses its recorded targets; it does not add Prod to a Test-only Plan. See GitOps release and promotion.

