KB_Soft Group - Software Vendor's Development Partner
Start page
Site map

Database Schema Versioning & Verification for .NET Applications



For applications working with databases, there exists a problem of versioning, verifying and modifying DB schemas. In terms of this project it was necessary to design a flexible mechanism allowing to execute all the above functions. This mechanism is of a special importance for extensible .Net applications, i.e. for those ones meant to be extended with new functionality. Supposing that a new version
  of a system or a module with additional functionality is produced. This results in the DB schema modification. How should these modifications be delivered to the Customer who uses this system? How should the required DB schema modification be made so that it would not corrupt the Customer's information? How is it possible to verify whether the Customer has not violated the existing database structure?


The project resulted in the software product, impementing the following functions:

creating the database;

verifying the database. As a result, the

program determines if there have been any modifications of the database structure performed or not;

modifying the database.

Technical peculiarities

The system was implemented on the Microsoft.Net platform. It uses ADO.NET technology to access a database and works with any versions of MS SQL Server, MSDE, and MDB. The following operation principles may also be mentioned as key technical peculiarities of the product:

the special XML file is shiped with the .Net application. This file contains the DB schema description as follows:

the names of tables and fields, field types, etc. Also, this file may describe relationships between tables, constraints and other information;

the verifying and DB-modifying mechanism (DBUpdater) gets information from the XML file. DBUpdater can create a database on the basis of this information;

DBUpdater gets the target DB schema description from the XML file and checks schema of the existing DB against that target one. As a result of the check operation DBUpdater can modify the existing database so that it matches the target schema described by the XML file.