For any software experience there are to essential elements — the application and the data. A functional user-experience depends upon the presence of both.
The application portion is stateless. Given this, developers can overwrite the application with the most current version when pushing new deployments of the application. Unlike the application, the database cannot be overwritten. Data is persistent and valuable, it is stateful. The database is one of your most valuable assets, as such database version control is necessary.
Database versioning starts with database schema (aka the structure of the database), the versioning comes into play as you track the changes that are happening to your database. Developers of today would never dream of working sans version control, as the benefits to collaboration and productivity are so significant.
Up to this point the database development side hasn’t had the right tools or processes for successful version control. In order to accelerate the pace of software delivery, application and database changes need to be well managed. In pursuit of this, database source and version control tools are in the midst of a renaissance with the goal of improving the automation and transparency of the application code as it shifts from development to production. Alas, the same is not true for database schema changes and version control.
Database version management tools and techniques have stayed mainly manual and immobile. This has resulted in the database becoming a bottleneck in the application deployment process, holding individuals and companies back from more frequent software version releases.
As application releases accelerate, database releases become a bigger issue, especially as application release frequency becomes weekly or more often.
Although applying traceable version control to SQL code may at first seem unnecessary, database version management is an important element to incorporate before it is too late — design your applications to be scalable! Most organizations report that half of all significant application changes require database alterations — database version control is unavoidable when attempting to accelerate your software’s overall delivery and quality.