I’ve never put much attention to how migrate databases until, of course, I had to do it.
The challenge was to migrate from an existing MySQL database to a WordPress database.
After a lot of research I found a couple of tools that automatize the process.
The challenge was more than just a straightforward migration but migrating specific fields within tables to the corresponding fields on the target database. This required for the tool to be able to select custom field mapping.
The only software I’ve found and tested that does this mapping is called SwisSQL Database Migration Tool 4.8 (see details here).
Because it is a Windows based application I used a MacBook with bootcamp installed and created a local LAMP testing environment to create a local wordpress instance. I used a free application called WAMP Server 5 (See creator’s page here).
WAMP 5 is extremely simple to install and comes loaded with many nice features, including phpMyAdmin which I used to manage my wordpress database installation.
SwisSQL Database Migration Tool is pretty straightforward to use in principle. However I was not able to make it work when connecting to a remote database. Although, after getting my web host provider, Bluehost.com
, to whitelist my external IP, I was able to establish a connection, the tool would not execute the migration and hanged up.
The solution was to export the remote database and re-import it locally. I also tried to export the desired tables as CSV files and select them as my source to be migrated. Once source and target databases are selected, the next step is to decide which tables and fields to migrate. Here is where you can select which fields you want to map to.
For example, on my source CSV, I had a table called blog with a field called b_content which had the content of the blog entry. On my target wordpress database the equivalent table is called wp_posts and the field that corresponded was called post_content.
The same for date and title. Once the mapping is done, clicking next initiates the migration process and if everything works you will have migrated your choice of data into your target database.
Here are some other tools I tested: