Files
relspecgo/tests/_plans/diff-merge.md
T

1.4 KiB

Plan: pkg/diff (65.5%) and pkg/merge (75.1%)

Existing

  • diff: diff_test.go, formatters_test.go
  • merge: merge_test.go

pkg/diff

Func Now Cases
compareSchemaDetails 0% Description/owner/options changed
compareConstraintDetails, normalizeConstraintAction 0% Columns, referenced table, on-update/on-delete variants and case/default normalisation
compareRelationshipDetails 0% Changed endpoints/type
compareViews, compareViewDetails 0% Added/removed/changed definition
compareSequences, compareSequenceDetails 0% Added/removed/changed increment/min/max/start

Data: pair examples/test_schema.dbml and test_schema_modified.dbml; add view/sequence changes in code-built fixtures.

pkg/merge

Func Now Cases
mergeSequences, cloneSequence 33% / 0% New, existing, conflicting; clone is deep
cloneSchema 48% Views, sequences, scripts, indexes cloned independently
extractTypeParts 48% Precision/scale, arrays, schema-qualified, no modifiers
GetColumnTypeConflictSummary, min 0% Limit truncation, zero conflicts

Live DB cases (dbtest)

  • pgsql live diff/merge against a real DB: dbtest.sh test postgres; reuse tests/postgres/init.sql as the live side and examples/test_schema*.dbml as the desired side.