Backup / Restore & Migrations

Backing up your website and then restoring it when something goes wrong is absolutely critical.  Web Hosting only guarantees disaster recovery services but it’s far more likely that a website will be down due to a new module misbehaving, accidental deletion of files, etc.  Drupal’s drush utility makes backing up and restoring sites simple and can also be used to migrate a site from one account to another. (i.e. migrating from a development account to the production one)

You will need SSH access to your website so please request it if you don’t already have it.

Backing Up

This creates a snapshot backup of the website into a file called mysite.tar located in the php-data/ directory of the account.

cd /usr/local/webs/mysite/htdocs/
drush archive-backup --destination=/usr/local/webs/mysite/php-data/mysite.tar

Restoring

This restores a website from a backup.  Note that it will overwrite the current site and any changes you’ve made since the snapshot was taken.

drush archive-restore /usr/local/webs/mysite/php-data/mysite.tar \
   --overwrite \
   --destination=/usr/local/webs/mysite/htdocs

Migrating Sites

To migrate a website from one account to another you first make a standard backup as shown above.  Then transfer the file to the other account. (in this case it’s placed into the php-data/ directory)  You can then execute a restore; however, you will need to update the database credentials to the appropriate values for this account.  drush has built this update directly into the restore command.

drush archive-restore /usr/local/webs/anothersite/php-data/mysite.tar \
   --overwrite \
   --destination=/usr/local/webs/anothersite/htdocs \
   --db-url=mysql://dbuser:dbpassword@webdb1.service.ohio-state.edu/dbname

Note that dbuser, dbpassword, and dbname are for the destination account and all must exist prior to executing this command. (It won’t create any of them)