Rebuild WordPress Site From Incremental Backup
Backup, Sysadmin, WordPress
This involves creating a new database, importing the backed up database, replacing site files and connecting site files to the new database.
Create Blank Database
# Replace "new_db_name", "new_user" and "12345"
# You will need to enter the MySQL password for the root user
mysql -u root -p -e "create database new_db_name; GRANT ALL PRIVILEGES ON new_db_name.* TO new_user@localhost IDENTIFIED BY '12345'"
Import Copy of Backup Database
After creating a new database, make sure you are logged out of the MySQL shell (ctrl + c), then enter:
mysql -u root -p new_db_name < database_to_import.sql
Set Up Files
- Add backup site files to document root
- Amend
wp-config.php
- enter the correct database name, user and password
If deploying to the same URL, you are done. If you are migrating the site, you need to edit database entries, since the site URL will be different.
Migration: Amend Database
Start a MySQL session for the new database:
mysql -u root -p new_db_name
Check you’re working in the right database:
mysql> SELECT DATABASE();
+---------------+
| DATABASE() |
+---------------+
| new_db_name |
+---------------+
Amend the following code block to reflect your old and new domain names:
UPDATE wp_options SET option_value = replace(option_value, 'http://old-domain.com', 'http://new-domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://old-domain.com','http://new-domain.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://old-domain.com', 'http://new-domain.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://old-domain.com','http://new-domain.com');
NB: if you use a custom database table prefix, replace the wp_
prefixes in the example code block
Migration: Flush Rewrite Rules
Log in to the new site, navigate to Settings » Permalinks and click save. Pretty permalinks should now work.
comments powered by Disqus