⌁
⟳
✓
One migration, Git to database
Follow a versioned SQL file from pull request to production.
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
✓ 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-rollout
○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
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.3.0already appliedskip
v1.4.0already appliedskip
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