Release candidate v1.1.8-rc adds major features including resumable migrations, revertible migrations, and GTID support. We invite the community to test these features and submit feedback or bug reports in an issue. After a period of further internal testing we will release GA v.1.18.
Thanks to all the contributors!
Changes
GTID support for binlog streaming by @timvaillancourt and @meiji163 in https://github.com/github/gh-ost/pull/1584
Use the --gtid flag to use GTID sets for binlog streaming instead of file-based coordinates (the default). This option requires gtid_mode=ON and enforce_gtid_consistency=ON.
Resume migration from checkpoint by @meiji163 in https://github.com/github/gh-ost/pull/1595
Use --checkpoint flag to write periodic checkpoints that can be used to resume an interrupted migration. As long as the relevant binlogs are still available, a migration can be resumed from the last checkpoint by invoking gh-ost again with . It is recommended to use in combination with , which allows resuming from a different replica.
Please read resume.md before using. Also see https://github.com/github/gh-ost/pull/1595#issue-3508471097 for more details.
Revertible migrations by @meiji163 in https://github.com/github/gh-ost/pull/1607
Some migrations can be reverted after they complete by invoking gh-ost with the --revert flag and the --old-table flag, which specifies name of the "old" table from the original migration e.g. _<table-name>_del. The original migration must be invoked with --checkpoint and the relevant binlogs have to still exist on the inspected replica.
⚠️ Migrations are only revertible under certain conditions. Please read revert.md before using. Also see https://github.com/github/gh-ost/pull/1607#issue-3655282975 for more details.
Add postpone-cut-over-flag-file interactive command by @yktakaha4 in https://github.com/github/gh-ost/pull/1561
The cutover flag file can be set via interactive command postpone-cut-over-flag-file=<path-to-cutover-flag>
PanicOnWarnings option to detect SQL warnings and fail the copy process by @grodowski in https://github.com/github/gh-ost/pull/1500
--panic-on-warnings will panic the gh-ost process if there are any SQL warnings during the copy phase
Add MySQL 8.4 Support by @chen-anders in https://github.com/github/gh-ost/pull/1494
Add triggers support by @yakirgb in https://github.com/github/gh-ost/pull/1503
Use --include-triggers to make gh-ost create the same triggers on the ghost table at cutover time.
Remove restriction on password length and bump go-mysql to 1.11.0 by @joshvarner in https://github.com/github/gh-ost/pull/1525
Update status format in docs by @coding-chimp in https://github.com/github/gh-ost/pull/1512
Fix: Avoid logging MySQL connection configs by @meiji163 in https://github.com/github/gh-ost/pull/1501
Fix: Add support for unique text column, they are mapped to uint8[] by @markmarkmarkthebest in https://github.com/github/gh-ost/pull/1583
Fix: Panic if InitiateHeartbeat exhausts retries to avoid looping infinitely by @grodowski in https://github.com/github/gh-ost/pull/1594
Fix: Conversion bug when string data comes from binlog by @mattbooks in https://github.com/github/gh-ost/pull/1571
Fix: Ensure metadata lock is held by rename session by @abaowhy in https://github.com/github/gh-ost/pull/1536
Fix: Prevent exponential backoff from overflowing. by @burnison in https://github.com/github/gh-ost/pull/1491
Fix: TLS verify error when gh-ost discovers the replication master by @petervandoros in https://github.com/github/gh-ost/pull/1487
Fix: Output for binary keys in -verbose mode. by @burnison in https://github.com/github/gh-ost/pull/1559
Fix: Lexographical comparison of binlog filenames by @grodowski in https://github.com/github/gh-ost/pull/1604
Fix: Logic to include originalUniqueKey in sharedUniqueKeys by @htmsousa in https://github.com/github/gh-ost/pull/1453
Fix: Align max --dml-batch-size with the implementation by @yktakaha4 in https://github.com/github/gh-ost/pull/1575
Testing: sysbench localtest by @meiji163 in https://github.com/github/gh-ost/pull/1590
Testing: toxiproxy localtest by @meiji163 in https://github.com/github/gh-ost/pull/1591
Testing: copier test, upgrade testcontainers by @meiji163 in https://github.com/github/gh-ost/pull/1567
Testing: Use docker for CI replica tests, deprecate dbdeployer by @meiji163 in https://github.com/github/gh-ost/pull/1529
Move successful cleanup into func by @pasha132 in https://github.com/github/gh-ost/pull/1520
Upgrade go to 1.23.0, net module to 0.36.0 by @dependabot[bot] in https://github.com/github/gh-ost/pull/1511
Upgrade builder images to go 1.23 by @meiji163 in https://github.com/github/gh-ost/pull/1519
Remove counts from CalculateNextIterationRangeEndValues that caused problems with --panic-on-warnings by @grodowski in https://github.com/github/gh-ost/pull/1557
Bump github.com/containerd/containerd from 1.7.18 to 1.7.27 in the go_modules group across 1 directory by @dependabot[bot] in https://github.com/github/gh-ost/pull/1513
Bump golang.org/x/net from 0.36.0 to 0.38.0 in the go_modules group across 1 directory by @dependabot[bot] in https://github.com/github/gh-ost/pull/1534
Bump actions/setup-go from 5 to 6 by @dependabot[bot] in https://github.com/github/gh-ost/pull/1581
Add Missing Languages to CodeQL Advanced Configuration by @bkungl in https://github.com/github/gh-ost/pull/1570
Potential fix for code scanning alert no. 5: Workflow does not contain permissions by @cinderellasecure in https://github.com/github/gh-ost/pull/1597
New Contributors
@htmsousa made their first contribution in https://github.com/github/gh-ost/pull/1453
@chen-anders made their first contribution in https://github.com/github/gh-ost/pull/1494
@burnison made their first contribution in https://github.com/github/gh-ost/pull/1491
@petervandoros made their first contribution in https://github.com/github/gh-ost/pull/1487
@coding-chimp made their first contribution in https://github.com/github/gh-ost/pull/1512
@grodowski made their first contribution in https://github.com/github/gh-ost/pull/1500
@joshvarner made their first contribution in https://github.com/github/gh-ost/pull/1525
@pasha132 made their first contribution in https://github.com/github/gh-ost/pull/1520
@abaowhy made their first contribution in https://github.com/github/gh-ost/pull/1536
@yktakaha4 made their first contribution in https://github.com/github/gh-ost/pull/1561
@mattbooks made their first contribution in https://github.com/github/gh-ost/pull/1571
@markmarkmarkthebest made their first contribution in https://github.com/github/gh-ost/pull/1583
@bkungl made their first contribution in https://github.com/github/gh-ost/pull/1570
@cinderellasecure made their first contribution in https://github.com/github/gh-ost/pull/1597
Full Changelog: https://github.com/github/gh-ost/compare/v1.1.7...v1.1.8-rc