I wanted to blog about whatever I had learned in the past week but really what came to mind was not answers, but more questions. Questions are good, they have a side effect of helping me learn. So here you go…
What is the ideal way to push changes from your development server, to stage, and then production SQL servers with Microsoft products?
The way I am familiar with is using a third party tool, Apex Diff, to script data/schema differences add scripts to VSS, then having a custom script for any data cleanups… and push.
But Microsoft has built this all into Team system I think, I’ve never used it personally.
Also, versioning… say I make changes to a table, “alter table add column blah blah”, what is the best way for VSS to pick up this change? I’ve always checked out the table creation script, manually added my alter script to the bottom with comments about the workorder where the new column was requested by the client, then checked in the script, hit ”f5″ to push just that portion to my database and called it a day.
But is there a way for VSS to automagically pick up these changes, and who made them… it would save me so much time to just hit “f5″ and be done.
The same goes for SSIS. How do I know what changes were made to SSIS packages before I got to them? I suppose I could compare the XML files… but I need more, I need to know why the change was made and who did it…
I guess what I’m saying is, if I only had Microsoft tools to work with, what are the best practices for pushing these changes to my databases.
All these questions are things I’ll most likely be researching and blogging about in the next few weeks.
This seems like a vital part of having a database, code change and migration process per Microsoft should be clear as a bell right?