Merge in Git.
Ship with Bytebase.

One migration file, from pull request to production.

Pull request Review & rollout
Create New File
migrations/ Name your file…
1
2

      
Create pull request
Migration Convention
Semantic USED HERE
v1.4.0_add_employee_email.sql
Timestamp
20260901143000_add_employee_email.sql
Sequential
004_add_employee_email.sql
Pull Request #128Open
add-employee-email → main
migrations/v1.4.0_add_employee_email.sql
+
+

        
⚠ Column has no DEFAULT · NOT NULL fails on 1,000 existing rows
SQL review on pull request ○ pending
Review required from DBA Team ○ pending
Merge pull request
✓ Merged to main
→ Release workflow triggered
SQL Review Policy
Require primary keyErrorWarning
Enforce setting default value on columnsErrorWarning
No foreign keys
Disallow SELECT *
+ 50 more predefined rules for Postgres
Built-in rules per engine. Warning advises · Error blocks.
GitHub Actions
○build
○create-release
○deploy-to-test
○deploy-to-prod
Triggered by merge to main
⏸ Waiting for approval · Environment: prod
Review deployments · prod
Release Deployed
Changes
v1.4.0_add_employee_email.sql Versioned GitHub commit b3f8a21
Deploy
○Test
○Prod
GitHub Environment
.github/workflows/release.yml
… deploy-to-prod: environment: prod …
Settings › Environments › prod
Required reviewers
Release Team
Revision
VersionType
v1.4.0Versioned
Next Deployment
v1.5.0newrun
add employee email just now
File
v1.4.0_add_employee_email.sql
VCS Source
GitHub: https://github.com/acme/hr/commit/b3f8a21c9e4d5a6f1b8c3d2e7f0a9b4c5d6e7f80
Deliberately simplified — a concept walkthrough, not the product UI.