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