MCPcopy
hub / github.com/github/gh-ost / TestWriteCheckpoint

Method TestWriteCheckpoint

go/logic/applier_test.go:779–865  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

777}
778
779func (suite *ApplierTestSuite) TestWriteCheckpoint() {
780 ctx := context.Background()
781
782 var err error
783
784 _, err = suite.db.ExecContext(ctx, fmt.Sprintf("CREATE TABLE %s (id int not null, id2 char(4) CHARACTER SET utf8mb4, primary key(id, id2))", getTestTableName()))
785 suite.Require().NoError(err)
786
787 _, err = suite.db.ExecContext(ctx, fmt.Sprintf("CREATE TABLE %s (id INT, id2 char(4) CHARACTER SET utf8mb4, name varchar(20), primary key(id, id2));", getTestGhostTableName()))
788 suite.Require().NoError(err)
789
790 _, err = suite.db.ExecContext(ctx, fmt.Sprintf("INSERT INTO %s (id, id2) VALUES (?,?), (?,?), (?,?)", getTestTableName()), 411, "君子懷德", 411, "小人懷土", 212, "君子不器")
791 suite.Require().NoError(err)
792
793 connectionConfig, err := getTestConnectionConfig(ctx, suite.mysqlContainer)
794 suite.Require().NoError(err)
795
796 migrationContext := newTestMigrationContext()
797 migrationContext.ApplierConnectionConfig = connectionConfig
798 migrationContext.InspectorConnectionConfig = connectionConfig
799 migrationContext.SetConnectionConfig("innodb")
800
801 migrationContext.AlterStatementOptions = "add column name varchar(20)"
802 migrationContext.OriginalTableColumns = sql.NewColumnList([]string{"id", "id2"})
803 migrationContext.SharedColumns = sql.NewColumnList([]string{"id", "id2"})
804 migrationContext.MappedSharedColumns = sql.NewColumnList([]string{"id", "id2"})
805 migrationContext.Checkpoint = true
806 migrationContext.UniqueKey = &sql.UniqueKey{
807 Name: "PRIMARY",
808 NameInGhostTable: "PRIMARY",
809 Columns: *sql.NewColumnList([]string{"id", "id2"}),
810 }
811
812 inspector := NewInspector(migrationContext)
813 suite.Require().NoError(inspector.InitDBConnections())
814
815 err = inspector.applyColumnTypes(testMysqlDatabase, testMysqlTableName, &migrationContext.UniqueKey.Columns)
816 suite.Require().NoError(err)
817
818 applier := NewApplier(migrationContext)
819
820 err = applier.InitDBConnections()
821 suite.Require().NoError(err)
822
823 err = applier.CreateChangelogTable()
824 suite.Require().NoError(err)
825
826 err = applier.CreateCheckpointTable()
827 suite.Require().NoError(err)
828
829 err = applier.prepareQueries()
830 suite.Require().NoError(err)
831
832 err = applier.ReadMigrationRangeValues()
833 suite.Require().NoError(err)
834
835 // checkpoint table is empty
836 _, err = applier.ReadLastCheckpoint()

Callers

nothing calls this directly

Calls 15

InitDBConnectionsMethod · 0.95
applyColumnTypesMethod · 0.95
InitDBConnectionsMethod · 0.95
CreateChangelogTableMethod · 0.95
CreateCheckpointTableMethod · 0.95
prepareQueriesMethod · 0.95
ReadLastCheckpointMethod · 0.95
WriteCheckpointMethod · 0.95
NewColumnListFunction · 0.92
NewFileBinlogCoordinatesFunction · 0.92
getTestTableNameFunction · 0.85

Tested by

no test coverage detected