So, as some of you have noticed, I haven't blogged in about 10 days...and that's a little unsual for me.  After getting back from the MVP Summit, I tons of work that had piled up during my absense plus the work that I need to get done that week.  Needless to say, I was pretty swamped.

To make matters worse, an enhancement that I had deployed prior to leaving for the summit had stopped working and no one could figure out why.  So, alas I spend the first half of Monday trying to dig through all the failed steps to discover that our db refreshes were the cause of the problem.  Here's what happened...

Every day (yes, you heard that right) our DEV, TEST, QA and PRE database environments are completely wiped out.  That's right! All objects (sprocs, views, roles, users, etc.) and data are dropped and replaced with the PROD instance.  So if your objects have not made it all the way to PROD, they're not automagically copied for you.  So how do you ensure that your data and objects make it through the killin'?  You have to script up your changes & data and place them into the patch directory of the refresh process job...yeah, don't get me started.

So now, not only do you have a copy of your objects in source control, but also in the patch directory.  The funny thing about this process is that long ago (aka before I started), some one had written an application that helped to manage application components (DLLs, OCXs, EXEs, Tables, Views, etc.).  But now that we've make things easier the tool has become a bit harder to use. 

Oh, the joys of work!

Fortunately, I was able to fix all of the problems before our 3/22 production deployment.  I'm just going to through this out there, but how do you manage your database refreshes/changes?