Skip to content

gh-ost

Relational Databases

A triggerless online schema migration tool for MySQL that works by streaming binary logs instead of using triggers

Go Latest v1.1.9 · 1mo ago Security brief →

Features

  • Triggerless migrations using the MySQL binary log stream
  • Test migrations on replicas before applying to production
  • True pause capability that stops all migration writes
  • Dynamic reconfiguration and interactive control during runtime
  • Auditing via Unix socket or TCP status queries

Recent releases

View all 2 releases →
v1.1.9 Bug fix
Notable features
  • Add retry logic for instant DDL on lock wait timeout up to `--default-retries`
  • Add `GH_OST_INSTANT_DDL` environment variable to gh-ost-on-success hook
Full changelog

GA release v1.1.9 is a small release with some bug fixes. We are aiming to make smaller releases more regularly.
Thanks to all the contributors!

What's Changed

  • Add retry logic for instant DDL on lock wait timeout by @yosefbs in https://github.com/github/gh-ost/pull/1651
  • Retry attempt InstantDDL up to --default-retries by @meiji163 in https://github.com/github/gh-ost/pull/1667
    • When --attempt-instant-ddl is enabled, it will retry on lock wait timeout up to --default-retries times. Retries are necessary in high-concurrency environments with metadata lock contention
  • Fix handling of warnings on DML batches by @ggilder in https://github.com/github/gh-ost/pull/1643
    • Previously --panic-on-warnings only detected SQL warnings for the last DML in each batch. Now it is guaranteed to detect all warnings.
  • Update golangci-lint to v2.11 by @meiji163 in https://github.com/github/gh-ost/pull/1657
    • Error messages have been lower-cased. Please be aware if you are parsing error logs.
  • Add GH_OST_INSTANT_DDL for gh-ost-on-success hook by @meiji163 in https://github.com/github/gh-ost/pull/1658
    • GH_OST_INSTANT_DDL environment variable is available on the success hook script to indicate whether InstantDDL succeeded or not.
  • Replace usage of Fatale with context cancellation by @ggilder in https://github.com/github/gh-ost/pull/1639
  • Improve tests for various error scenarios by @ggilder in https://github.com/github/gh-ost/pull/1642
  • Fix rm permission errors in local tests by @grodowski in https://github.com/github/gh-ost/pull/1644
  • Fix abort/retry interaction by @ggilder in https://github.com/github/gh-ost/pull/1655
  • Fix Warning 1300 for varbinary columns with bytes invalid as utf8mb4 by @ggilder in https://github.com/github/gh-ost/pull/1661
  • Prevent race condition on cutover completion by @jakubpliszka in https://github.com/github/gh-ost/pull/1664
  • Prevent permanent worker deadlock when cutover times out waiting for binlog sentinel by @VarunChandola in https://github.com/github/gh-ost/pull/1637
  • Upgrade to go1.25.9 by @meiji163 in https://github.com/github/gh-ost/pull/1668

New Contributors

  • @yosefbs made their first contribution in https://github.com/github/gh-ost/pull/1651
  • @jakubpliszka made their first contribution in https://github.com/github/gh-ost/pull/1664
  • @VarunChandola made their first contribution in https://github.com/github/gh-ost/pull/1637
  • @dnovitski made their first contribution in https://github.com/github/gh-ost/pull/1666

Full Changelog: https://github.com/github/gh-ost/compare/v1.1.8...v1.1.9

v1.1.8 Breaking risk
Notable features
  • GTID support for binlog streaming
  • Migration checkpoints and resume capability
  • Trigger support for migrations

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
13,365
Forks
1,385
Languages
Go Shell

Community & Support

Alternative to

pt-online-schema-change Facebook online schema change

Beta — feedback welcome: [email protected]