Back To Documents

Benefits Of ShiftSchema

Most development teams use source control systems like Subversion to manage the source code of their projects but often don't manage their database changes so carefully. This can lead to developers interfering with each other and even problems with releases when application code and database versions get out of sync.

If your team is struggling to manage database schema evolution or simply finds it a chore, ShiftSchema can revolutionize the way you work with Microsoft SQL Server databases.

What does it do?

The idea behind ShiftSchema is that your database structure is part of your source code and should be kept safe in the repository along with any other code.

ShiftSchema exports the structure of your database to files that reside in your source control system. You tell ShiftSchema the location of your working copy and how to connect to the corresponding database and ShiftSchema keeps the two synchronized.

If you make a change to your database structure using SQL Server Management Studio or a DDL script the changes will be immediately reflected in your working copy.

When you update your working copy any changes committed by other developers will be pushed into your database.

If you've made a change to your database that has not yet been committed to the repository you can undo it by simply reverting your working copy.

How Does That Benefit My Team?

Many teams share a single development database. This centralized approach is fine if you are simply adding tables or other objects but as soon as a developer wants to change or remove existing structures, especially frequently used ones, other members of the team will find their code will be broken until the developer making the change commits his code to the repository.

The alternative is for each developer to have their own copy of the database. Developers already have their own working copy of the code but what they are doing by sharing a database is effectively working on a shared set of source code files. If they each had their own copy of the development database they could make all the changes they want without affecting each other. The problem with this approach is that databases are not very well supported by source control systems and manually synchronizing them is very time consuming and error prone.

ShiftSchema solves this problem by making it easy for each developer to have their own working copy database to go with the working copy of their code. It automatically keeps a developer's database in sync with her source code.

ShiftSchema also provides tools to help with continuous integration and building releases.

It can perform a one off synchronization between files in source control and a database. This means your CI server can have it's own database on which to run tests and it will always be up to date with the code being tested.

ShiftSchema will also generate DDL scripts to get you from one version of a database to another. You can use it to script all changes made from the previous release, create a script to build a database from scratch or to move from one version of your database to any other.

See this guide for more information on how to integrate ShiftSchema into your development environment

How Do I Sell My Boss On This?

ShiftSchema is great value for any organization that develops software using Microsoft SQL Server. The key business benefits are:

  • Developer Time - Software developers aren't cheap so why have them waste time on chores that can be automated? ShiftSchema allows your developers to get on with the business of building great applications. Using ShiftSchema to control database changes means they will spend less time managing their development database and putting releases together.
  • Software Quality - Manually managing changes to databases is not only time consuming but is often error prone as well. A failed release can be expensive in both lost productivity and sales. ShiftSchema can show your developers exactly what changes are required for a release and will write a script to make those changes.
  • Security - Your software is vital to your business. That's why every line of code is stored in a repository and that repository is safely backed up. What about your databases? Of course they're backed up but using ShiftSchema means you can always build and run any version of your applications.

Back To Documents


Buy Now!   Free Trial