GitHub's Online Schema-migration Tool for MySQL
.github | ||
doc | ||
go | ||
vendor | ||
build.sh | ||
LICENSE | ||
README.md |
gh-ost
GitHub's online schema migration for MySQL
gh-ost
allows for online schema migrations in MySQL which are:
- Triggerless
- Testable
- Pausable
- Operations-friendly
How?
WORK IN PROGRESS
Please meanwhile refer to the docs for more information. No, really, go to the docs.
Usage
Testing on replica
gh-ost --conf=.my.cnf --database=mydb --table=mytable --verbose --alter="engine=innodb" --execute --initially-drop-ghost-table --initially-drop-old-table -max-load=Threads_connected=30 --switch-to-rbr --chunk-size=2500 --cut-over=two-step --exact-rowcount --test-on-replica --verbose
Please read more on testing on replica
Executing on master
gh-ost --conf=.my.cnf --database=mydb --table=mytable --verbose --alter="engine=innodb" --execute --initially-drop-ghost-table --initially-drop-old-table -max-load=Threads_connected=30 --switch-to-rbr --chunk-size=2500 --cut-over=two-step --exact-rowcount --verbose
What's in a name?
Originally this was named gh-osc
: GitHub Online Schema Change, in the likes of Facebook online schema change and pt-online-schema-change.
But then a rare genetic mutation happened, and the s
transformed into t
. And that sent us down the path of trying to figure out a new acronym. Right now, gh-ost
(pronounce: Ghost), stands for:
- GitHub Online Schema Translator/Transformer/Transfigurator
Authors
gh-ost
is designed, authored, reviewed and tested by the database infrastructure team at GitHub: