I don't even know where to start. I have been tasked with migrating an older version of CiviCRM (3.4.8) on Joomla 1.5 to a newer version of CiviCRM on Wordpress. I got a fresh install of CiviCRM done on Wordpress 4.4, but I'm not sure where to go from here. I'm not familiar with Joomla (this is not my website), so please be very specific. I need everything (users, customizations, whatever else) moved over without having to delete anything on the current site.
In case it helps anyone, this is what I did:
- a working Joomla site, with Civicrm and Joomla tables in the same database
- a separate installation of Wordpress on the same server (articles and static content already imported from the Joomla site and redirects set up as required)
Aim: migrate the Joomla Civicrm tables and data to the Wordpress installation. In this case we chose to do it without moving the Civicrm tables, for simplicity.
Result: Wordpress tables and Civicrm tables are in two separate databases
- Backup Joomla Civicrm tables or the whole database.
- Make a note of:
- Civicrm version number in Joomla Civicrm
- what components and extensions you have installed in Joomla Civicrm
- any user permissions in Joomla Civicrm (if you use permissions).
- Civicrm version number in Joomla Civicrm
- Install Civicrm in Wordpress (check version is same as Joomla Civicrm).
- Install/remove Civicrm components to match the Joomla Civicrm.
- Install any Civicrm extensions (check versions) to match Joomla Civicrm.
- Export data (should be just one row) from Wordpress Civicrm table civicrm_uf_match. Disable foreign key checks just in case.
- In the Joomla Civicrm database, make a copy of table civicrm_uf_match (in case you need to revert to Joomla).
- In the Joomla Civicrm database, truncate the table civicrm_uf_match and import the data exported from Wordpress Civicrm table. Preferably disable foreigh key checks.
- Edit the Wordpress civicrm.settings.php file (by default it's in wp-content/uploads). Change CIVICRM_UF_DSN and CIVICRM_DSN to point to the Joomla database.
- I also edited the row 'userFrameworkUsersTableName' in the table civicrm_setting, to change joomla-table-prefix_users to wp-table-prefix_users, but I don't know if this is necessary.
- You should now be able to access the 'old' Civicrm tables through Wordpress.
- Civicrm->Administer->Users and permissions->Synchronise Users to Contacts
That's it. There's a bit of tidying up to do (see below), but at this stage you can still easily revert to Joomla if necessary by replacing the table civicrm_uf_match with the copy, and by reversing steps 9 and 10.
- Tidy up: manually set up Civicrm user permissions to correspond to the old Joomla setup. Add any missing users. I had already used the FG Migrate Joomla to Wordpress plugin to migrate users and articles from Joomla.
- Tidy up: drop all the Joomla tables (and any other non-civicrm tables) from the Joomla database.
- Tidy up: drop the civicrm tables from the Wordpress database.
For the question about Joomla (users and permission), ask the wordpress or joomla communities.
For the migration of civicrm itself, it should be fairly easy: just copy the civicrm database (or the tables civicrm_* if they are in the same database than the joomla site)
Check on civicrm.settings.php see if you have a mention of joomla and replace it by wordpress and you should be almost there
You might have to manually change how the drupal users are mapped to the civicrm contacts, unless you do manage to keep the same ids for joomla and civi
Re: civicrm.settings.php mentioned above, since you installed from WP, you shouldn't need to worry about Joomla there. What version of CiviCRM did you install in WP, the latest? If so, the schema has changed a good bit from 3.4.8! It might be best if you can update/upgrade CiviCRM to * (whatever version you are asked to use) in (a copy of) the Joomla site, and only afterwards, move your CiviCRM database into the WP- civicrm one. The upgrade can take some time, and present its own challenge. There's a table in CiviCRM syncing WP defined users and CiviCRM users, civicrm_uf_match. The users should exist as 'contacts' in civicrm, and the email address is the uf_name, or identifier, used to match users in WP and CiviCRM. If you have already created users or data in the 'new' CiviCRM database with WP, save that database and, after you do the upgrade, try changing the connection info/credentials in the WP install to point to it. Go to 'CiviCRM' from WP (it looks like another plugin) and the user data should automatically get synced, you can verify by looking at the uf_match table.