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-emailmain
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
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-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 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.