Issue
Issue Service | https://api.bytebase.com/#/tag/issueservice |
Plan Service | https://api.bytebase.com/#/tag/planservice |
Rollout Service | https://api.bytebase.com/#/tag/rolloutservice |
Sheet Service | https://api.bytebase.com/#/tag/sheetservice |
Issue
drives the database operations in Bytebase. The issue contains following info:
- Issue metadata. e.g
title
anddescription
. - Plan. Contain one or multiple SQL statements and dictate how they are grouped and ordered. The plan layouts how to execute the SQL statements.
- Sheet. Plan references SQL statements via the
Sheet
object. EachSheet
contains one or more SQL statements. - Step. Plan orchestrates the order via
Step
. EachStep
specifies one or more changes units. A change unit specifies the SQL statements viaSheet
and the target database.
- Sheet. Plan references SQL statements via the
- Rollout. The actual execution of the plan.
How to create an issue
Code sample: https://github.com/bytebase/github-action-example/blob/main/.github/actions/upsert-issue/index.ts#L68-L75
Step 1: Create a plan.
Inside the plan, create one or more sheets if needed. Then you orchestrate the order via Steps:
Each spec corresponds to a task. A task is a single change unit. Tasks run in the following order:
-
Tasks from the late stage must wait until all the tasks from the previous stage reach to the end state.
-
For tasks belong to the same stage:
- Tasks changing the same database run sequentially. A failed task will not block the following task.
- Tasks changing different databases run concurrently.
If you want to enforce strict running order inside a step/stage. You can specify dependsOnSpecs
with the previous task.