I have a userbase of over 360k users that I need to sync. Every time I hit the sync button, it syncs for about 5 minutes and manages to sync about 2.5% of my user database before crashing. A few minutes later, my site is back up, so it's mostly fine.
The problem is that to sync 100% of my user base, I'd have to do this about 40 times and that will not only take long, it will also cause downtime and crashes every 5 minutes, which I can't afford.
I am comfortable manipulating data via phpmyadmin, so I was wondering if there was a way to manually sync users that way.
So I guess what I'm asking is: what does syncing users actually do in the backend (so I can replicate it myself manually)? Does the syncing involve anything else that is not database-related?
Hi @myonlinestartup,
Please execute these SQL commands in Hosting Service cPanel > phpMyAdmin > Your Website Database > SQL tab:
INSERT INTO `wp_wpforo_profiles` (
`userid`, `title`, `username`, `groupid`, `posts`, `questions`, `answers`, `comments`,
`site`, `icq`, `aim`, `yahoo`, `msn`, `facebook`, `twitter`, `gtalk`, `skype`,
`avatar`, `signature`, `about`, `occupation`, `location`, `last_login`, `online_time`,
`rank`, `like`, `status`, `timezone`, `is_email_confirmed`, `secondary_groups`, `fields`)
( SELECT u.`ID`, 'Member', u.`user_login`, 3, 0, 0, 0, 0,
u.`user_url`, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, um.`meta_value`, NULL, NULL, u.`user_registered`, NULL,
0, 0, 'active', '', 1, NULL, NULL
FROM `wp_users` u
LEFT JOIN `wp_usermeta` um ON um.`meta_key` = 'description' AND um.`user_id` = u.`ID`
WHERE u.`ID` NOT IN( SELECT p.`userid` FROM `wp_wpforo_profiles` p ) )
Then navigate to Dashboard > Forums > Dashboard admin page, click on the [Delet all caches] button.