1.4 KiB
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; reusetests/postgres/init.sqlas the live side andexamples/test_schema*.dbmlas the desired side.