Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions go/test/endtoend/onlineddl/vrepl/onlineddl_vrepl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -857,6 +857,35 @@ func TestVreplSchemaChanges(t *testing.T) {
}
})
})
t.Run("Revert a migration completed on both shards", func(t *testing.T) {
var uuid string
t.Run("run migration, expect completion on both shards", func(t *testing.T) {
uuid = testOnlineDDLStatement(t, alterTableTrivialStatement, "vitess", providedUUID, providedMigrationContext, "vtgate", "test_val", "", false)
onlineddl.CheckMigrationStatus(t, &vtParams, shards, uuid, schema.OnlineDDLStatusComplete)
})
var revertUUID string
t.Run("issue revert migration", func(t *testing.T) {
revertQuery := fmt.Sprintf("revert vitess_migration '%s'", uuid)
output, err := clusterInstance.VtctldClientProcess.ApplySchemaWithOutput(keyspaceName, revertQuery, cluster.ApplySchemaParams{DDLStrategy: "vitess"})
require.NoError(t, err)
revertUUID = strings.TrimSpace(output)
assert.NotEmpty(t, revertUUID)
})
t.Run("revert completes on both shards", func(t *testing.T) {
status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, revertUUID, normalMigrationWait, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed)
fmt.Printf("# Migration status (for debug purposes): <%s>\n", status)
onlineddl.CheckMigrationStatus(t, &vtParams, shards, revertUUID, schema.OnlineDDLStatusComplete)
})
t.Run("validate both shards show complete in SHOW VITESS_MIGRATIONS", func(t *testing.T) {
rs := onlineddl.ReadMigrations(t, &vtParams, revertUUID)
require.NotNil(t, rs)
require.Equal(t, 2, len(rs.Rows))
for _, row := range rs.Named().Rows {
status := row["migration_status"].ToString()
assert.Equal(t, string(schema.OnlineDDLStatusComplete), status, "shard %s", row["shard"].ToString())
}
})
})
t.Run("summary: validate sequential migration IDs", func(t *testing.T) {
onlineddl.ValidateSequentialMigrationIDs(t, &vtParams, shards)
})
Expand Down
Loading