Getting your code into a version control repository is relatively easy. Doing the same for your database schema has historically been a bit trickier. I think this is partly because modern databases (like Microsoft SQL Server) come with quite useable graphical interfaces, which means that you can make many significant changes without ever writing a line of SQL.
The good thing though is that all of these changes are done using SQL, so version control is usually about keeping versions of the SQL scripts.
Some common techniques include:
- One single production database and all changes are made live (be careful!)
- Make changes to dev database and then migrate the changes to production (SQL Compare is great for this)
- All schema objects are stored in scripts that need to be executed to create the database.
Creating the initial database isn’t too bad, but pushing out updates can be more difficult, especially if you need to deal with updating from different possible versions.
One tool that might prove in solving this problem is DBDeploy.NET - a port to .NET of the Java-based dbDeploy.
I needed to download some files from SourceForge earlier this week, and what a pleasant surprise it was to see that Internode is now hosting the Australian mirror.
Even better, it is unmetered for Internode customers (such as myself), and means that the 4.7Tb of SourceForge files are available to download super-quick. Not that I want to download 4.7Tb all at once mind you!
After attending Sasha’s talk at the Adelaide SQL Server User Group yesterday, it inspired me to get the ball rolling in preparing for my own presentation, which is pencilled in for August.
Figuring it would be appropriate to try and use as many of the “2008” products as possible, I planned to install Windows Server 2008 and then plonk Visual Studio 2008 and the just-released SQL Server 2008 on top.
I downloaded Virtual PC 2007 SP1 (which was updated to support Server 2008) and then ran the installer.
To my surprise, a dialog appeared saying “You are not running on a supported operating system”.
Hang on, I’m running Windows XP with SP3. Double check the system requirements, and yes, it does list XP SP3.
Now I used to run Virtual PC just fine before I reinstalled the OS a few months ago, so what’s changed?
Ah ha! I was running Windows XP Professional before, and now I’m just running XP Home - that’s what’s different! While it doesn’t explicitly mention “Professional” on the web page, it is more specific in the installed help file:
Windows Vista™ Business; Windows Vista™ Enterprise; Windows Vista™ Ultimate; Windows Server 2003, Standard Edition; Windows Server 2003, Standard x64 Edition; Windows XP Professional; Windows XP Professional x64 Edition; or Windows XP Tablet PC Edition
But having said that, when they say “not supported”, at least they don’t appear to mean “doesn’t work”.
Release candidate zero of SQL Server 2008 is now available.
Some other interesting things that have been released recently include:
I’ve also downloaded the latest technical preview of Windows Live Writer and am using it to write this post. So far, so good.
Today was my first day at ABB Grain Ltd. Carl (my manager) gave me a tour of the facilities where apparently 400 staff are based. I was impressed to learn that not only is tea and coffee provided, but there’s even an on-site gym.
The location is very pleasant, overlooking the parklands. Veale Gardens is directly across the road, which is a nice place to walk around at lunch time. The office is reasonable quiet (yay, no loud conversations from people supporting video conferences! Some people will know who I’m talking about!)
I’m starting to learn a bit more about the application that I’ll be working on. Timothy Walters has had a couple of weeks head start on me, but with the combination of C#, WPF, SQL 2005, NHibernate, ActiveRecord and CAB (and maybe the possibility of Castle Windsor), this is going to be really interesting.
Timothy also mentioned he’s keen to do some pair programming on this project. Looks like we’re going to get to do a bit of extreme programming.
Other good news is my computer did have dual monitors (though hopefully one will be replaced as I had trouble connecting with a funny DVI plug). They’re also using IP telephony, which is cool. Unfortunately their SIP server is not public, so no free calls from home though :-(
Instead of TFS, they use OnTime for bug tracking and CVS for version control (though we might be moving to Subversion).
So all in all a pretty good first day, and I’m feeling excited about the project work (even if I did discover the database has no foreign keys at all - aargh!)