Automated schema migrations for github/* repos
skeefree is an app which collaborates with other components to achieve automated schema migration flow at GitHub. The complete flow is composed of:
- GitHub Actions: an Action runs on Pull Request to identify if and which schema changes are pending
- skeema: an open source tool, which we use to identify which schema change is pending, and generate a formal statement to transition into the new schema
- gh-ost: our online schema migration tool, which runs reliable, auditable, controllable migrations on our busy clusters
skeefree: this repo, a service (internally deployed on kubernetes) which interacts the schema changes Pull Requests (by collaborating with the Action), which supports chatops for control and visibility, and which can kick the schema change, either directly (CREATE TABLE,DROP TABLE) or indirectly (invokegh-ostto run the migration).
For more information, read How skeefree works
We deploy skeefree in two forms:
- A service (internally at GitHub we run this on kubernetes)
- A binary deployed to "utility" hosts where we run
gh-oston. The binary helpsgh-ostinteract in theskeefreeflow:- It activates
gh-ost - And gets called by
gh-ostvia hooks.
- It activates