Paul: OK. So the first thought I'm getting is that, with migrations, I can pretty easily put my database under version control. So if I've got a customer-reported bug to fix and the database schema has changed since the release they're using, I can migrate my development and test systems' databases back to the version that matches the software they're running. And if there are intervening releases, I can step through the whole list doing exactly the same thing. So basically, I can check out my database right along with my code base. I have to admit, that is pretty cool.

So what do we have to do now? I mean, we've got some garbage in our migrations now. We have no idea whether or not Boss is going to want to add any information about contributors. Can we get rid of those migration files?

CB: We can, but we need to do it carefully. Rails won't like it if we get things out of synch. The easiest way to get everything back to where we started is to use Rails to migrate us back to our baseline,

Paul: Wow. That's pretty impressive stuff! I'll have to play around with it some more. Right now, though, I've got to take off. Thanks for sharing the pie and for taking me through migrations. If we can, I'd like to pick up next time we get together with the unit tests. I'll definitely feel better when I know those are in place.

And so Paul takes off and CB goes back to his 9-5 drudgery, daydreaming just a little about what the future might hold. Could it really happen? Could this actually turn into a chance to do some serious coding in Ruby on Rails? Have some fun and get paid too? Well now, there's something I'd like a lot! Even better if it comes with free pizza! ;-)

Click to continue your adventure as CB and Paul add Unit tests to their
Cookbook app.