When we first installed CiviCRM - the installer was super eager to install using the existing WordPress database. We were just testing out CiviCRM at the time, so it was not a big deal - however we ended up sticking with CiviCRM and now we are migrating to a new server. Before we migrate to the new server - we think now is a good time to separate the CiviCRM tables from the wordpress tables. Based on the stack mentioned above, I plan on doing the following:

  1. Enter site into "maintenance mode". i.e. temporarily close to public.
  2. Create a new civicrm database
  3. Export the civicrm tables from the original wordpress DB.
  4. Import the civicrm tables into the new civicrm database
  5. Edit wp-content/uploads/civicrm/civicrm.settings.php to point to the new civicrm-only DB.
  6. Test
  7. Drop the civicrm tables from the original wordpress database.
  8. Celebrate?

Is there something else I should be aware of?

2 Answers 2


Maybe if you have some plugin that uses $wpdb to access civi tables. For example there are several workarounds to try to get the functionality of drupal views that isn't in wordpress, and if they're written as native wordpress plugins and not civicrm extensions maybe they would use $wpdb.


First, I think this is a comprehensive list, though Demerit obviously uses some integration tricks I don't, and others may as well.

Second, for concrete instructions on how to do steps 2-4 and 7, they're the same as the Drupal 8 database separation steps that are documented here on Stack Exchange.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.