Last week, Six Apart announced the release of Movable Type 4. MT4 is a major upgrade in that it adds many new features and supports a more robust templating system. This site is run by MT4 and has been upgraded from version 3.35 to use the new templates and features. (Edit - 2-25-2009 - this site is now running drupal 6.9) Upgrading the underlying system is fairly straight-forward, but getting all of your customizations moved into the new templates is very work intensive and requires a lot of research. I'll go over what I learned and did to successfully upgrade this site and hopefully save you some time.
Upgrading the base system
Most people can just follow the directions in MT's documentation for upgrading.
On my system, I had to migrate from Berkeley DB to MySQL, which involved installing several Perl modules to support MySQL connectivity. There is some good information for installing MySQL extensions for Perl here. After I had set that working, I had to convert my existing MT 3.35 Berkeley DB database to MySQL using these instructions.
Even though I was able to write this using 3 links and under 200 words, the instructions up above required over an hour of work. Make sure to back up during every step so that if you make mistakes (and you very well might!) you don't lose any part of your precious site.
At this point, you should have MT4 installed and your previous site should be working in it. While many people may think this is good enough, it's not really much of an upgrade as you don't get to use any of the new features available in Movable Type 4. Six Apart gives some basic directions for upgrading MT3 templates, however they only offer enough to get some of the new features working with your old templates and end the article by saying that a full upgrade is only for the brave at heart. If you are, read on...
Benefits of converting your site's design to the MT4 templates
Updating to the new templates
What I did first was created a brand new blog, called "new blog", that would have all of the default templates and settings I was hoping to integrate into my old upgraded site. Then I made a clone of my site called "clone." I did this so that I could have an old template point of reference, a new point of reference and a merging and testing area that shows how the site will look using my current entries. Once all is said and done, you will end up moving your clone's templates back over to the main blog and republish using those. We'll get there at the end.
Visualize this process as:
Blog (Old Templates) --> Cloned Blog (Merged Templates) <-- New Blog (New Templates)
Merged Templates --> Replace Old Templates
Copy the new blog's templates over the clone's
Note - See comments below on quicker ways for refreshing the templates. Apparently a standard "refresh templates" will get the new templates up, but you still need to set up archive mappings.
Open up the Index Templates list on your clone blog. These are all wrong now, and we still have your original blog so it's time to clear it all out. Delete them all by selecting all and hitting delete. Repeat for Archive Templates and Template Modules. Open up another browser window or tab with the new blog's Index Templates. Create a new template in your clone blog for every template you see in the new blog, name it the same as the new blog, make sure to set it's type on the pull-down on the bottom to match then paste the contents in and save. Repeat for all Index Templates and Template Modules. Archive Templates are a little different because they have archive mappings on the bottom that you must create. Perform the same name and content pasting as before for these but make sure to create the archive mappings to match as well.
Now you will have a clone of your original blog using the new templates, but you've got none of your customizations. It's time to learn a bit about how MT4 does templates and do some thinking about how you'd like to redesign, if at all. Republish your clone and have a look. It should be all of your content, all functional but with the new default style. To change the style, Go to Design -> Style in the admin tool, choose a style and apply. Sift through the new templates and template modules to understand the way they are included and compartmentalized. This will help you merge in the next step.
How to merge old templates with new
Open up three browser windows or browser tabs, one with the old templates, one with the clone (merge) templates and one with the new templates. For every bit of custom design you had and still want, you will have to find the old spot you have customized in the old templates, the new spot that it belongs in in the clone templates and make that change in the clone template. Many things have moved around and become better organized, such as the new header, 3 column layout and footer, available in the Template Modules. Go through each customization one at a time, copying from your old blog and pasting in to your clone blog, then republishing and viewing to see if it produced the desired effect. Eventually you will have integrated your old changes, made some design changes and become satisfied with your clone blog's layout and functionality.
At this point, all you need to do is back everything up (Can I say backup again?) and perform the same template copy procedure you have done once already but this time you are copying from your clone blog back to your new. Don't forget to set up archive mappings! Republish and your main blog should have a shiny new exterior on it.
Tips and Tricks for converting