feat: implement MSSQL extractor, transformer, and Postgres loader for enhanced data migration
This commit is contained in:
@@ -7,6 +7,9 @@ import (
|
||||
"time"
|
||||
|
||||
"git.ksdemosapps.com/kylesoda/go-migrate/internal/app/config"
|
||||
"git.ksdemosapps.com/kylesoda/go-migrate/internal/app/etl/extractors"
|
||||
"git.ksdemosapps.com/kylesoda/go-migrate/internal/app/etl/loaders"
|
||||
"git.ksdemosapps.com/kylesoda/go-migrate/internal/app/etl/transformers"
|
||||
"github.com/jackc/pgx/v5/pgxpool"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
@@ -87,11 +90,24 @@ func processMigrationJobs(
|
||||
chJobs := make(chan config.Job, len(jobs))
|
||||
var wgJobs sync.WaitGroup
|
||||
|
||||
extractor := extractors.NewMssqlExtractor(sourceDb)
|
||||
transformer := transformers.NewMssqlTransformer()
|
||||
loader := loaders.NewPostgresLoader(targetDb)
|
||||
|
||||
for i := range maxParallelWorkers {
|
||||
wgJobs.Go(func() {
|
||||
for job := range chJobs {
|
||||
log.Infof("[worker %d] >>> Processing job: %s.%s <<<", i, job.SourceTable.Schema, job.SourceTable.Table)
|
||||
res := processMigrationJob(ctx, sourceDb, targetDb, job)
|
||||
res := processMigrationJob(
|
||||
ctx,
|
||||
sourceDb,
|
||||
targetDb,
|
||||
extractor,
|
||||
transformer,
|
||||
loader,
|
||||
job,
|
||||
)
|
||||
|
||||
chJobResults <- res
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user