Not a developer? Go to


Upgrade Guide for Movable Type

This is the upgrade guide for Movable Type.

Upgrade is similar to installation, except that backups of all data should created, database and config files don’t have to be created from scratch, and custom plugns will need to be re-installed.

Here’s the basic process:

  1. Backup - The most important part of upgrading
  2. Install New Version
  3. Configure New Version
  4. Upgrade Database
  5. Install Plugins - critical if publishing requires plugins, otherwise optional.
  6. Refresh templates after upgrading to MT5.13, 5.07, or 4.38

About This Guide

This guide assumes that you have FTP, shell, or some other form of access to the server.

Throughout this guide two terms are commonly used:

Pre-Upgrade Check List

Upgrading More Than One Major Version?

This is generally not a problem, but there are some specific changes to make if upgrading from versions older than MT3.31. Read the recommended upgrade path from older versions of movable type.

Confirming Plugin Compatibility

Some plugins come bundled with Movable Type. But there are many plugins available from third-party developers which extend the functionality of MT. All plugins bundled with the old version of Movable Type will either be bundled or merged into the new version.

Many plugins will work with different versions of Movable Type, but check with each plugin’s documentation to determine if there are any updates or compatibility issues.

If particular plugins are critical to publishing blogs/websites managed by the Movable Type installation and the plugin author hasn’t made any notes about compatibility with the new version of Movable Type, contact the plugin developer or install a fresh copy of the new version of Movable Type, install the plugins, and test.

Find a link to the plugin’s web page by going to the System Overview > Manage Plugins screen and selecting the name of the plugin to reveal the details of the plugin.

Perl Module Requirements

The Per Modules section of the System Requirements page lists which are required. After installing the new MT application files on the server the mt-check.cgi script can be used to test if necessary Perl Modules are installed. (This step is listed after Configure New Version below.)

Database Details

When upgrading, the same database is typically with the new version. After upgrading to the new version of MT, you’ll access MT and an upgrade script will update database to the latest schema.

As Movable Type has developed support for less popular databases has been dropped. Movable Type 5 currently only offers support for MySQL. View system requirements for more info.

If you are using SQLite or PostgreSQL learn how to migrate your SQLite or PostgreSQL database to MySQL.

Warning: Because Movable Type 5 does not support SQLite or PostgreSQL, convert to MySQL before upgrading to Movable Type 5.

Two upgrade strategies when it comes to database:

  • backup the current database, and proceed with the current database.
  • populate a new database with the backup of the existing database.

Tip: The benefit of the second option is that the existing database and MT application can be left in parallel with the new install and new database which makes reverting easy if necessary.

The database credentials can be found in the mt-config.cgi file.

If using a new database (assuming it’s a MySQL database) have the following three items ready:

  • database name
  • database user
  • database user password


Warning: This is the most important part of upgrading.

Backups should be created on a regular basis regardless of whether performing an upgrade or installing plugins that effect the database. Should data be lost due to any reason, a recently-created full backup will make it easy to revert to a previous state. Determine how many hours or days of work you can afford to lose, this amount of time should be your backup interval.

Note: Optionally, use the Backup and Restore functionality in MT to move data between installations of MT. This is optional because because backing up the database and directories as described below covers is a more comprehensive backup strategy.

Directories to Backup

See the File System page for more info about these directories.

Duplicate the directories to backup (via FTP program or command line) on the server or download a backup.

Tip: If possible create a compressed archive of on the server first (zip, tar.gz, etc.). Via command line, use the zip command to recursively compress all the files and directories in a sub-directory of the current directory into a zip archive:

zip -r sub-directory-name

Backing Up the Database

The database is where all the non-file content and settings are stored. Read more about backing up a MySQL datatbase. (Find the database name, user, and password in the mt-config.cgi file.)

If not using MySQL refer to migrating to MySQL from SQLite or PostgreSQL.

Install New Version

Now that all the data is backed up we’re ready to install the new version of Movable Type.

Because installation of the new version during upgrade is essentially the same as during initial installation, please refer to the Install New Version section of the Detailed Step-by-Step Installation Guide. (Simpler installation guides are also available: Install via FTP or Install via SSH.)

Because this will be the second (or more) version of Movable Type being installed, there a couple strategies for installation location:

  • Existing application directory

    If installing the new version of MT into the current directory, delete all the files from the exising application directory and upload the files from new version to this folder.

    Warning: If upgrading to Movable Type 5 from a previous version of MT, the method of copying the new files over the existing files recursively is not recommended. Start with a fresh install of the application directory, then install any plugins, and make any desired modifications the the application files.

  • Parallel application directory

    If multiple application directories are installed:


    They can each be accessed separately:

    Installing these directories side-by-side allows for easily switching back or referring to a previously installed version of MT if necessary.

    Tip: a symlink can be created to point “mt” to the current application directory in the cgi-bin so that Movable Type can be accessed without the version number in the URL:.

    $ ln -s MT-5.0-en mt

    Read more about Symlinking to the Application Directory

Confirm that file permissions have been set correctly.

Copy mt-static/support directory contents

Copy the contents of the old $MT_HOME/mt-static/support directory into the new mt-static/support directory.

If permissions have changed since these files were backed up ensure that file permissions are set correctly.

Copy Custom Themes

If upgrading from MT5+ and custom themes are in the old installation’s $MT_HOME/themes directory, copy them to the new themes directory.

Configure New Version

Take the mt-config.cgi file from the application directory of the previous installation and copy it to the new installation’s application directory.

If using a new database, change the database config directives to access the new database.

Note: Optionally, confirm proper installation that MT is installed properly by accessing the mt-check.cgi script. Should be a url similar to this:

The message “Movable Type System Check Successful” will appear at the bottom of the screen if the server has all the necessary libraries/modules for installing Movable Type.

If the system check fails to complete, then the missing Perl libraries/modules must be installed before continuing.

Upgrade Database

At this point all the files for the MT application have been installed and configured.

Logging into the new Movable Type version will trigger the upgrade script. If the database schema has changed between the old and new versions, this script will move data around in the database to match the new schema.

Login to the Movable Type install:

If there is an error, double-check that the steps above have been completed.

Note: The database upgrade process may not run to completion on sites that have extremely large databases. For tips about how to manage that problem, see the next section.

Upgrading a Really Large Database

Movable Type will make a lot of changes to your database schema to introduce performance enhancements and support for new features. For really large databases, say for databases with several hundred thousand comments for example, this process may take several minutes. Therefore users that feel that they have large database are encouraged to run the command-line upgrade tool.

To execute this tool, run the following commands from the command line while your working directory is the application directory:

perl ./tools/upgrade

Install Plugins

Third-party plugins critical to the functionality of blogs/websites published by this installation of Movable Type should be installed before the new version is used to publish otherwise there may be errors.

Read about “Confirming Plugin Compatibility” in the Pre-Upgrade Check List at the top of this guide.

Resume Blogging!

  • Once necessary third-party plugins have been installed, publish each blog and website to test for any errors.

Japanese URL:



Richard on December 3, 2009, 8:50 p.m. Reply

Ok I have read the documents from front to back. For all the versions now. I am having trouble after logging in. I enter my user name, password. Then I am logged in, and the screeen says it is time to upgrade. So I click the button and the process begins. The screen reads UPGRADING DATABASE….STARTING UPGRADE. It never moves after this. This is about the tenth time I try it. Now I am gonna leave it overnight to see if hopefully by morning it is completed.

Is this normal, or is this a problem. At present, I believe it is a problem. I cannot see anything in the documents stating it takes a long time to upgrade. In fact, I keep reading in the forums that “After a few minutes” it should be completed.

Do you have any suggestions for me.

Thanks Richard

Beau Smith

Beau Smith on December 7, 2009, 1:22 a.m. Reply

Richard, this question is being answered in the Movable Type Forums.

PRO IT Service

PRO IT Service on March 21, 2010, 6:19 p.m. Reply

I’ve been providing the solution on the thread that Beau is mentioning above.

Would be happy to assist anyone having problems with the upgrade process.

I’m also available for consultancy in case you want me to upgrade your movable type installation in a professional way.

Kind Regards,
Mihai Bocsaru

Daily Movable Type Consultant

Web Development - Movable Type Consulting - Six Apart Partner

Movable Type Demo

jtoews on March 22, 2010, 11:08 a.m. Reply

The link to “migrate your SQLite or PostgreSQL database to MySQL” gives me a 404 error

PRO IT Service

PRO IT Service on May 28, 2010, 11:29 a.m. Reply

What I believe is missing from this page are a few words about the importance of keeping your movable type installation up to date.

When my customers ask me why they should upgrade their movable type installations I explain them that a newer release has the following advantages:

  • bug fixes;
  • sometimes new features;
  • sometimes one or more security issues fixed.

In a few words, months of Six Apart precious time on making movable type better than ever before.

Worth mentioning is that at least for now, people running movable type v4.x shouldn’t consider upgrading it to v5.x because the product architecture changed a lot and that could result is some problems.

As a daily and most importantly, passionate movable type consultant, I’m very happy to let you know that I’m offering an absolutely free movable type evaluation service to anybody around the world.

If you plan to upgrade your movable type installation, but you don’t know to which exact version or what will the advantages be, then consider trying out any movable type series version, from the oldest v1.x to the newest v5.x.

All you have to do is to go to:

After playing a little bit with any movable type release you prefer, if you decide to upgrade to it, you may try to do it yourself, or you may like to contact me for professionally upgrading your project.

If you decide to have me upgrade your project, make sure to contact me from my contact page from


fwblack on April 25, 2011, 8:22 a.m. Reply

Mihai - you say in your last comment to not upgrade from 4.x to 5.x… what about now… is the upgrade process more stable? What about 3.x to 5.x?

Does 5.x solve some of the processor utilization issues that people have had on shared servers (such as with 1and1 hosting)?


rüya tabirleri on July 23, 2012, 10:58 p.m. Reply

You will have to create a login/password called a “MySQL User” for this database. There will already be a login created, which is the “master” account. That is a default. You also need to create another MySQL subuser for Movable Type to use to log into your database

Robert R on August 8, 2012, 3:49 p.m. Reply

Thanks for the article. As a WordPress user myself, I was reclutant to try other plattforms because of lack of documentation. I was a user of Movable Type back in 2006 when there was a boom of blog plattforms. Thanks for the guide, it helped me a lot, I really love your software on November 5, 2012, 7:15 p.m. Reply

I don’t get why everyone is so hung up on the WordPress vs. Movable Type angle. If you talk to anyone from Six Apart, they’ll tell you their goal is to expand the use of blogs and blogging in general, not to replace WordPress.

albert on December 12, 2012, 10:42 a.m. Reply

I would say MT is SEO friendly if you make it SEO friendly.

alexis on October 22, 2013, 2:05 a.m. Reply

Is there any way to upgrade and install Movabletype without using command line programs? For example install it using cPanel? Why the tutorial of it is not available here?

referencement on March 31, 2014, 10:51 a.m. Reply

Being a newbie myself, these guides have also helped me tremendously. Only minor complaint would be that it’s not very easy to implement if you’re not “command-line” savvy - I’m used to cPanel and it takes a while to understand the instructions.