Add --move-tables mode - #1755
Draft
ericyan wants to merge 23 commits into
Draft
Conversation
Add move-table command parsing and validate the table list input. Initialize migration context from the CLI configuration. Refs: #1702
Build range-bounded copy queries and prepare target-table DML queries. Apply copy batches through the applier and invoke them from the migrator. Refs: #1703
Enable end-to-end target-table copying, route DML events to the target, and harden move-table initialization and table selection. Refs: #1705 Co-authored-by: Chris Kirkland <chriskirkland@github.com> Co-authored-by: Daniel Joos <danieljoos@github.com> Co-authored-by: womoruyi <womoruyi@github.com>
Implement the T0-T6 cooperative cutover workflow and cover atomic target-table cutover behavior. Refs: #1704 Co-authored-by: Zach Sierakowski <zacharysierakowski@github.com>
Create target tables in the destination database and abort safely when target tables already exist. Refs: #1710
Use target-cluster credentials and replica status for control-replica throttling during move-table migrations. Refs: #1709
Expose move-table source, target, and migration details to lifecycle hooks. Refs: #1711
Initialize move-table configuration consistently before migration setup. Refs: #1712
Enable the throttler in move-table mode with the move-table-specific configuration. Refs: #1713
Persist per-table checkpoints and drain GTIDs so copying and cutover can resume safely after interruption. Refs: #1708
Remove target artifacts and migration state after successful or failed move-table operations. Refs: #1717
Add local integration scenarios for single-table copying and concurrent writes. Refs: #1714
Restore the move-table drain GTID when resuming an interrupted migration. Refs: #1720
Introduce source-primary connection configuration and guard primary-required move-table operations. Refs: #1718
Update status reporting and lag measurement for move-table migrations. Refs: #1721
Add failpoint-driven integration coverage for copy, drain, hook, and cutover recovery. Refs: #1723
Extend migration state, copying, checkpointing, draining, and atomic rename to ordered sets of tables. Refs: #1726
Exclude generated columns from move-tables writable column lists during initial setup and resume. Use the filtered columns for row-copy queries while preserving the complete column layout for binlog event ordinals.
Populate writable column metadata for fresh and resumed move-table migrations so JSON, unsigned, and binary values are encoded correctly.
Exercise row copy and concurrent DML with signed, unsigned, and maximum BIGINT UNSIGNED values.
ericyan
force-pushed
the
feature/move-tables
branch
from
August 18, 2026 15:36
5acafd2 to
f830fe0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR adds support for a new move table mode, in which one or more tables are copied from a source MySQL cluster to a target MySQL cluster.
Related issue: #1681
script/cibuildreturns with no formatting errors, build errors or unit test errors.Component PRs
Most of the PRs for this feature were created before Stacked PR were available. In addition to the PR stack, this feature branch also consolidates the following move-tables PRs:
Core migration flow
Cutover and recovery
Throttling, hooks, and cleanup
Integration coverage and follow-up