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.