|
|
YOUR FEEDBACK
|
TOP MICROSOFT .NET LINKS Tools
Effective Database Change Management
Versioning, developing concurrently, deploying and upgrading
Nov. 8, 2006 12:00 PM
Digg This!
Page 2 of 2
« previous page
Figure 3 outlines the principal process of creating an update script:
The process of generalizing this specific upgrade script through enhancing and correcting will be more or less complicated, depending on how much guidance the synchronization tool provides. An excellent example for such guidance is shown in Figure 4, a screenshot taken from DbMaestro by Extreme. As you can see, the script is annotated with a number of warnings about potential data loss. Continuing our table rename example, such an annotated script would easily allow you to match the CREATE statement for table T2 and the DROP statement for table T1, and manually replace them with an sp_rename statement. In more complicated database changes like (de)normalizations and refactorings, you will actually need to create data transformations, e.g., through UPDATEs and INSERTs, and place them before any lossy schema changes. Unfortunately, I'm not aware of any tool that currently recognizes operations, such as renames, and automatically creates the corresponding schema upgrade and data transformation operations. However, there are a number of best practices you can use to facilitate the process of creating a generalized upgrade script:
In this article I showed several techniques for addressing common problems in database development. A proper integration into source control is the foundation for any advanced technique such as concurrent development, testing, or creating upgrade scripts. Prerequisite to each of these techniques is tool support (see the References section below). Speaking for myself, I have yet to find the perfect tool for all these tasks as each tool has its own strengths and weaknesses. Therefore, it might even make sense to work with two individual tools, depending on the tasks that you need to perform. Lastly, I need to mention that for all the techniques described in this article I could only give a high-level introduction. Each one of them requires a certain amount of practice to use it efficiently, such as handling the check-out/check-in process confidently, consequently re-testing the build script before checking in, and getting an eye for manipulating automatically generated upgrade scripts. Nevertheless, you now should be on your way to establishing a reliable database change management process with predictable outcomes tailored to your own needs.
References Page 2 of 2 « previous page MICROSOFT .NET LATEST STORIES
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
|
SYS-CON FEATURED WHITEPAPERS MOST READ THIS WEEK BREAKING NEWS FROM THE WIRES
|
||||||||||||||||||||||||||||||||||