It's actually quite simple to combine your databases.
Do a database export of your WP database:
mysqldump -u [username] -p [wp database name] > wp-original.sql
It'll ask for your password and then output your WordPress database to the wp-original.sql
file.
Do a database export of your CiviCRM database:
mysqldump -u [username] -p [civi database name] > civi-original.sql
It'll ask for your password and then output your CiviCRM database to the civi-original.sql
file.
Create a new database that'll be your combined database. This way, you will still have your two original ones in case of emergency. Grant permissions on the new database to the user that has permissions for your WordPress database.
Load the two exports into the new database:
mysql -u [username] -p [new database name] < wp-original.sql
mysql -u [username] -p [new database name] < civi-original.sql
Edit your wp-config.php to have the new database name:
define('DB_NAME', '[new database name]');
Edit your civicrm.settings.php to have the new database name (and appropriate username/password, if you had different ones for CiviCRM). This will need to be done in both places--once for the CMS database and once for the CiviCRM database.
define( 'CIVICRM_UF_DSN', 'mysql://[username]:[password]@[hostname (probably just "localhost")]/[new database name]?new_link=true' );
define( 'CIVICRM_DSN', 'mysql://[username]:[password]@[hostname (probably just "localhost")]/[new database name]?new_link=true' );
You can probably just copy the CIVICRM_UF_DSN
value once you've fixed the database name and paste it in place of the CIVICRM_DSN
value.
Log in and make sure everything works on your existing server.
For Drupal and Joomla users, the principle is the same, just with settings.php and configuration.php, respectively, instead of wp-config.php. The only difference is that on Joomla, you need to fix both civicrm.settings.php files (in administrator/components/com_civicrm
and components/com_civicrm
).
Now, I used to say that you should never put your site on WPEngine because they used to only run a version of PHP that was too old for CiviCRM. That's been fixed. However, they still run very aggressive caching, and you may find it to be a problem with CiviCRM.
You should definitely do your first run over there as an experiment and test it heavily, logging in as various users and trying out a variety of CiviCRM features. There's a good possibility that it will either be unusable or take more of your time than you'd save by having things in the same place. If you think of it, please comment with your experience--whether it works or doesn't.