Pick our brains...

Migration of WordPress from Pagodabox to a Traditional Hosting Environment

Go to start of metadata

This guide focuses on getting the data out of Pagodabox.

General Step-by-step guide for Pagodabox migration:

  1. Download the Site from Pagodabox (covered in this guide)
  2. Setup Server that will be the new host
  3. Upload files and data to new host
  4. Update the DNS to point to the new host

Downloading the Site from Pagodabox

When backing up any WordPress installation there are two parts that need to be obtained –Database and Files. However with Pagodabox, there is a little gotcha to this rule of thumb. There are three main parts that need to be collected from Pagodabox in order to recreate at some other place:

  1. Code (files)
  2. Content that is contained in writable storage. (Special Files)
  3. Database Data

Obtaining the Code

By having Git installed and setup to interact with Pagodabox, we have the main parts of code necessary to recreate the site. This includes the theme files, and any plugins, along with the actual WP core files used on the site.

Check out Setting Up Git to setup your machine to interact with Pagodabox. Once you are able to interact with Pagodabox, you can obtain the code by getting the ‘Git Clone Url’ from the Pagodabox admin area:

From the terminal we can clone this code to a working directory:

Clone an Existing Pagodabox app
mkdir temp-dir
cd temp-dir
git clone git@git.pagodabox.com:summitprod.git

Once this is done, you now have all of the code – the theme files, the plugins, and even WP core files in use on Pagodabox.


Pagodabox Writable Storage

Pagodabox makes use of some pretty advanced caching techniques and therefor, very little of our app resides in a static place that is accesible via ssh/sftp.  This means we can’t do certain things that we once used the WP admin area for. This is why when adding new themes or plugins, we add them to the Git repository and perform a Git Push.

This is great, execpt for one directory which WordPress needs to be able to manage – the uploads directory. We solve this by making this directory writable. See Shared Writeable Storage Management for more info on this topic.

For our purposes of migration, we need to ssh/sftp into this writable storage and download the content contained within. So from the Pagodabox main dashboard, goto the ‘Admin’ page where you can find the username (the app name) and host (pagodabox.com). The actual password you’ll need to track down – thankfully everything is documented in the Cred Sheet – right?

So now, login using your ftp client, for me, Filezilla looks like:

From here there might be a number of files and folders that are contained in the ‘Shared’ directory. We are mostly concerned with the uploads directory, but depending on what plugins were installed, or the actual needs of a theme for writable storage, you may need to download some of these other files into their appropriate places.


Database Data

There are ways to interact with the data contained within your app by creating an ssh tunnel to the database. However, if we are just going to be moving to another site, then we can do something a bit more simple.

  1. Take DB snapshot from the Pagodabox admin area
  2. Download the generated SQL file

Making a Snapshot

Navigate to the Pagodabox admin area and select the database you want to backup. For example:

Pagodabox keeps these SQL backups in the same place that the writable storage is. To access them, login to the writable storage using your favorite sftp client and download the appropriate .sql file that is located in the backup folder