feat: refactor migration job to use preSQL and postSQL from TargetTable; update config structure for job definitions
This commit is contained in:
@@ -82,10 +82,10 @@ func processMigrationJob(
|
||||
return result
|
||||
}
|
||||
|
||||
preSqlQueries := job.PreSQL
|
||||
preSqlQueries := job.TargetTable.PreSQL
|
||||
if job.TruncateTarget {
|
||||
truncateQuery := buildTruncateQuery(targetDbType, job.TargetTable.Schema, job.TargetTable.Table, job.TruncateMethod)
|
||||
preSqlQueries = append([]string{truncateQuery}, job.PreSQL...)
|
||||
preSqlQueries = append([]string{truncateQuery}, job.TargetTable.PreSQL...)
|
||||
}
|
||||
|
||||
for _, query := range preSqlQueries {
|
||||
@@ -238,7 +238,7 @@ func processMigrationJob(
|
||||
cancel()
|
||||
}()
|
||||
|
||||
for _, query := range job.PostSQL {
|
||||
for _, query := range job.TargetTable.PostSQL {
|
||||
if _, err := targetDbWrapper.Exec(localCtx, query); err != nil {
|
||||
result.Error = err
|
||||
return result
|
||||
|
||||
@@ -33,15 +33,17 @@ type TableInfo struct {
|
||||
Table string `yaml:"table"`
|
||||
}
|
||||
|
||||
type TargetTableInfo struct {
|
||||
TableInfo `yaml:",inline"`
|
||||
}
|
||||
|
||||
type SourceTableInfo struct {
|
||||
TableInfo `yaml:",inline"`
|
||||
PrimaryKey string `yaml:"primary_key"`
|
||||
}
|
||||
|
||||
type TargetTableInfo struct {
|
||||
TableInfo `yaml:",inline"`
|
||||
PreSQL []string `yaml:"pre_sql"`
|
||||
PostSQL []string `yaml:"post_sql"`
|
||||
}
|
||||
|
||||
type RangeConfig struct {
|
||||
Min int64 `yaml:"min"`
|
||||
Max int64 `yaml:"max"`
|
||||
@@ -54,8 +56,6 @@ type Job struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
SourceTable SourceTableInfo `yaml:"source"`
|
||||
TargetTable TargetTableInfo `yaml:"target"`
|
||||
PreSQL []string `yaml:"pre_sql"`
|
||||
PostSQL []string `yaml:"post_sql"`
|
||||
JobConfig `yaml:",inline"`
|
||||
Range RangeConfig `yaml:"range"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user