From 63cf26e1abccfb3e9aa885f3ebba947f64a836b6 Mon Sep 17 00:00:00 2001 From: Kylesoda <249518290+kylesoda@users.noreply.github.com> Date: Fri, 17 Apr 2026 16:29:32 -0500 Subject: [PATCH] feat: update target database type to sqlserver and clean up unused code in mssql.go --- config.yaml | 2 +- internal/app/etl/extractors/mssql.go | 6 ++-- internal/app/etl/table_analyzers/mssql.go | 2 ++ internal/app/etl/transformers/mssql.go | 42 +---------------------- 4 files changed, 7 insertions(+), 45 deletions(-) diff --git a/config.yaml b/config.yaml index 42aee99..84449cf 100644 --- a/config.yaml +++ b/config.yaml @@ -1,6 +1,6 @@ max_parallel_workers: 4 source_db_type: sqlserver -target_db_type: postgres +target_db_type: sqlserver defaults: max_extractors: 2 diff --git a/internal/app/etl/extractors/mssql.go b/internal/app/etl/extractors/mssql.go index d34447a..919eded 100644 --- a/internal/app/etl/extractors/mssql.go +++ b/internal/app/etl/extractors/mssql.go @@ -43,9 +43,9 @@ func buildExtractQueryMssql( for i, col := range columns { fmt.Fprintf(&sbQuery, "[%s]", col.Name()) - if col.Type() == "GEOMETRY" { - fmt.Fprintf(&sbQuery, ".STAsBinary() AS [%s]", col.Name()) - } + // if col.Type() == "GEOMETRY" { + // fmt.Fprintf(&sbQuery, ".STAsBinary() AS [%s]", col.Name()) + // } if i < len(columns)-1 { sbQuery.WriteString(", ") diff --git a/internal/app/etl/table_analyzers/mssql.go b/internal/app/etl/table_analyzers/mssql.go index 4faaf21..67e7c4a 100644 --- a/internal/app/etl/table_analyzers/mssql.go +++ b/internal/app/etl/table_analyzers/mssql.go @@ -39,6 +39,8 @@ JOIN sys.schemas s ON st.schema_id = s.schema_id WHERE s.name = @schema AND st.name = @table AND (c.is_hidden = 0 OR (c.graph_type IS NOT NULL AND c.name LIKE '$%')) ORDER BY c.column_id;` +// AND c.name NOT LIKE '$%' + type rawColumnMssql struct { name string userType string diff --git a/internal/app/etl/transformers/mssql.go b/internal/app/etl/transformers/mssql.go index 7270ebb..0d67b16 100644 --- a/internal/app/etl/transformers/mssql.go +++ b/internal/app/etl/transformers/mssql.go @@ -4,7 +4,6 @@ import ( "context" "errors" "sync" - "time" "git.ksdemosapps.com/kylesoda/go-migrate/internal/app/custom_errors" "git.ksdemosapps.com/kylesoda/go-migrate/internal/app/etl" @@ -18,46 +17,7 @@ func NewMssqlTransformer() etl.Transformer { } func computeTransformationPlan(columns []models.ColumnType) []etl.ColumnTransformPlan { - var plan []etl.ColumnTransformPlan - - for i, col := range columns { - switch col.SystemType() { - case "uniqueidentifier": - plan = append(plan, etl.ColumnTransformPlan{ - Index: i, - Fn: func(v any) (any, error) { - if b, ok := v.([]byte); ok && b != nil { - return mssqlUuidToBigEndian(b) - } - return v, nil - }, - }) - - case "geometry", "geography": - plan = append(plan, etl.ColumnTransformPlan{ - Index: i, - Fn: func(v any) (any, error) { - if b, ok := v.([]byte); ok && b != nil { - return wkbToEwkbWithSrid(b, 4326) - } - return v, nil - }, - }) - - case "datetime", "datetime2": - plan = append(plan, etl.ColumnTransformPlan{ - Index: i, - Fn: func(v any) (any, error) { - if t, ok := v.(time.Time); ok { - return ensureUTC(t), nil - } - return v, nil - }, - }) - } - } - - return plan + return []etl.ColumnTransformPlan{} } const processBatchCtxCheck = 4096