GitHub's Online Schema-migration Tool for MySQL
Go to file
Shlomi Noach 7573c1245a Merge pull request #53 from github/listen-socket
adding interactive user commands
2016-06-07 11:59:49 +02:00
.github initial CONTRIBUTING.md 2016-05-20 13:10:50 +02:00
doc adding interactive user commands 2016-06-07 11:59:17 +02:00
go adding interactive user commands 2016-06-07 11:59:17 +02:00
vendor added vendor packages 2016-04-01 16:04:27 +02:00
build.sh adding interactive user commands 2016-06-07 11:59:17 +02:00
LICENSE Initial commit 2016-03-21 11:08:52 +01:00
README.md some more stuff in README 2016-06-06 13:01:47 +02:00

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: