Database schema evolution tool
Consider an RDBMS with a given set of tables, data records and constraints. Developing new versions of a given software typically requires schema evolution:
-
Adding new tables and views.
-
Adding / replacing data columns.
-
Changing types.
-
Adding / removing / changing integrity constraints.
Upgrading a software system to a new requires schema evolution for an existing set of data. One such way involves:
-
Dumping the existing data to a series of XML files among with a database schema export to XML Schema. This allows for data validation against the exported schema.
-
Post modifying both exported data and schema to meet the desired version's schema. This still allows for validation.
Note
In practice a database's size may effectively prohibit validation due to memory / performance limits.
-
Importing the new state of data and integrity constraints to you upgraded database.