Practice Safe SQL Server Version Control (Part #2)
Part 2 will discuss the Solutions :
Nob Hill Software, after suffering from this lack of satisfactory solution to the problem, decided to come up with a solution that will once and for give a full answer to managing database change. The goal was to come up with a solution that’s:
1. Quick to implement with a minimal learning curve
2. Impact on the monitored databases needs to be minimal
3. It must be always possible to roll back any monitored database to any point in time, fully or partially.
4. In addition to w
orking as a stand-alone application, It must integrate with the existing version control systems that clients already have set up at their site
5. Monitors absolutely everything about the database – any single entity being modified in any way – tables, views, permissions – everything must be monitored and saved when changed.
6. Shifting responsibility from the developers to the software itself. The developers and DBAs need to be free to do what they’re hired to do, knowing that a background ‘agent’ fully versions their work, and it’s always there when needed.
7. Provide accurate information on every change, such as its exact timestamp, the user who made the change, and more
8. Not just save schema, but also offer many features that will make it easy to browse database entities at different points in time, generate reports on changes, drill down easily to find any particular change, generate alerts when certain entities are modified, and in short make full use of the fact that it’s not just another repository that’s being created – but rather a custom repository built to maintain database changes
9. Save everything about the server, and that means going ‘outside’ databases to save things like server logins, TSQL Jobs, SSIS packages, and more
10. Being able to also version data, since some tables, for example ‘configuration’ tables, have values that are practically part of a schema, and their change needs to be versioned
11. The tool must be affordable
After much planning, Nob Hill Software came out with a product that answers to all of the above requirements. It’s called ‘Randolph’, and it does it all. It’s a background service that keeps scanning the databases it monitors for any schema changes, and updates its own repository when any are found, and potentially pushes out changes to external version control systems (currently supporting SourceSafe, Subversion and Microsoft Team Foundation Server). The main idea is that the developers and DBAs can totally free themselves from this issue, and focus at what they’re doing best: developing and maintaining their software projects. When Randolph is set up, Any change whatsoever in their databases is being logged automatically, and from that point and on databases can always be fully rolled back - a complete rollback or selective entities – to their state in any point in time. Plus, a whole new set of features is included to make change management from a typical uneasy concern to a rather pleasant experience.