Database administrators and developers can be greatly benefited by using database change management tools as they not only improve their efficiency but also considerably reduce their workload. Previously, command lines were used by the database administrators to create, edit and delete databases but the introduction of a number of tools for the management of database change has considerably reduced the load of work of the database administrators as well as developers. Some of the tools popularly used for managing the change in database are being discussed hereunder to understand them briefly.
Database Change Management Tools for Developers
Liquibase, built on Java, is an open source tool popularly used for database change management. This tool allows the database administrators and developers to define the database changes desired by them in XML files instead of directly writing SQL against the database objects to create, change and delete them. a list of changesets is provided by the XML file known as changelog to define the desired change in database in an unbelievable manner.
A developing list of database changes contained in the changelog is provided to the team of developers to apply it on the database they aim to change. The content of this list can be changed from time to time. This tool for management of database changes can be executed either as a part of build by using Maven, Ant and other similar integrations or through command line. The changesets are applied directly to the database by the Liquibase to control the changes and classification of the state of database.
Working of Liquibase
The database change, against which you are applying changesets, has to be specified by you while executing liquibase. In order to manage changes in the database liquibase uses two tables, databasechangelock and databasechangelog. These tables are created by the developer if they do not exist on the targeted database. To ensure the running of one instance of liquibase an entry is added to the databasechangelock table at a time. A listing of every changeset applied to this database is contained in the databasechangelog table. A difference of the table contents is conducted by liquibase with XML files to determine the changes to be applied at that time. After this determination the changes are applied to the database by Liquibase.
Dbdeploy is another tool used for database change management. The developers and database administrators who want to re-factorize their database or develop their database design in a flexibly controlled, frequent and simple manner can use this tool.
Reasons to use Dbdeploy
Sometimes developers face a consistent problem in upgrading and preserving the existing database and its contents during development process. Most of the times developers desire to disperse the existing database and rebuild it from the very beginning just like rebuilding codes. But while working within a controlled environment like UAT, Production and QA this approach can not be followed. In that case Dbdeploy can help them in this regard.
How to use Dbdeploy?
It has been concluded on the basis of long experiences that allowing developers to change the database by using version-controlled SQL delta scripts is one of the easiest ways. According to the experts it is also beneficial to ensure the similarity of the scripts used to build environments for development with that of used in UAT, production and QA. Dbdeploy aims to maintain and making use of these deltas for significant management of database changes. This database change management tool can be used mainly for following purposes:
Implement the development sandboxes: An individual database instance can be created by individual developers alongwith test, production and development integration instances to create a development environment for them.
Maintenance of database changelog: It records the set of database changes cumulatively to apply them to each instance individually.
Creation of database delta scripts: For each individual database change it creates a separate script like Statement or DDL etc.
Use of naming principle for scripts: In the sequence the scripts are to be applied it names them alongwith the reason of their application.
Use of version control on your scripts: As you treat the code of your source it treats your database scripts by using version control repository.
The framework of Ruckusing written in PHP5 is a database change management tool used for creating and controlling a set of migrations in database. Database migrations can be understood as declaration making files that are used to symbolize the condition of database including columns, indexes or tables etc. at a specific point of time. Several developers can use the same application by using database migrations with a guarantee of using the application consistently even across all the remotely placed machines used by developers. The idea of migration system used in Ruby on Rails was the basic idea behind this framework. One can understand the concept of ruckusing easily if he is familiar to the migrations in Ruby on Rails. The supported database by ruckusing include MySQL, Sqlite and Postgres etc.
Features of Ruckusing
Easy portability is the first and foremost feature of Ruckusing. The migration files created to describe the state of database like columns, indexes and tables etc. which during run time are translated correctly into SQL are themselves written in pure PHP5. It allows you to use single set of migration files to support clearly any RDBMS by using some adapter.
It provides support for basic tasks like a rake. The concept of tasks in this framework, which is used to apply an interface, is the basic classes of PHP5. Migrations, the primary concept of Ruckusing, are also tasks for this framework.
It also enables developers to go to a particular migration state through its UP or DOWN keys. In order to generate skeleton migration file it also provides Code generator
In order to generate and run migration files from particular module directories it also supports those module directories.
It also provides additional support various basic tasks including asking for the current version, dumping the current schema and initializing the DB schema info table etc.
Thus various database change management tools can be used by developers and database administrators for improving their efficiency.
Don’t forget to follow me on Twitter, and on Google+. Sharing is always appreciated.
Chris is the Lead Author & Editor of Change Blog. Chris established the Change blog to create a source for news and discussion about some of the issues, challenges, news, and ideas relating to Change Management.