Summary
Extend the schema diff engine to detect changes to columns and indexes that already exist by name.
Current behavior
The current diff engine detects only additions and removals.
It does not detect changes to:
- column types;
- sizes;
- nullability;
- default values;
- uniqueness;
- auto-increment behavior;
- primary-key state;
- index columns;
- index uniqueness.
Expected behavior
The diff engine must produce explicit alteration operations when supported schema properties change.
Unsafe or ambiguous changes must be reported instead of silently ignored.
Scope
Suggested files
modules/db/include/vix/db/mig/diff/Op.hpp
modules/db/src/mig/diff/Diff.cpp
modules/db/src/mig/sql/MySqlGenerator.cpp
modules/db/src/mig/sql/SQLiteGenerator.cpp
modules/db/tests/migration_diff_test.cpp
Acceptance criteria
Non-goals
This issue does not include:
- automatic column rename detection;
- automatic data conversion;
- foreign-key alteration;
- ORM model comparison.
Suggested labels
scope:db
type:feature
tests
help wanted
status:accepted
Summary
Extend the schema diff engine to detect changes to columns and indexes that already exist by name.
Current behavior
The current diff engine detects only additions and removals.
It does not detect changes to:
Expected behavior
The diff engine must produce explicit alteration operations when supported schema properties change.
Unsafe or ambiguous changes must be reported instead of silently ignored.
Scope
diff_or_throw()entry point.Suggested files
modules/db/include/vix/db/mig/diff/Op.hppmodules/db/src/mig/diff/Diff.cppmodules/db/src/mig/sql/MySqlGenerator.cppmodules/db/src/mig/sql/SQLiteGenerator.cppmodules/db/tests/migration_diff_test.cppAcceptance criteria
Non-goals
This issue does not include:
Suggested labels
scope:dbtype:featuretestshelp wantedstatus:accepted