Due to high cost and outdated software, Roadfood.com requested that we migrate their forums from https://www. aspplayground.net/ to their primary site, roadfood.com. The original site was built on WordPress. They requested we utilize the forum software BBpress and migrate all their forum data to that software. We exported millions of forum records from the MSSQL database, updated the charset from latin1 to UTF-8, which involved rigorous testing throughout the millions of records to ensure special characters were translated correctly.
Once the database records were properly exported and formatted, we downloaded a copy of roadfood.com and completed the migration locally. It required massive amounts of processing in order to import all the records.
We created a script that scanned through each row in the database, and assigned the specific record data points to the correct problematic meta data points within the WordPress structure. This ensured we were able to build out a forum post for each record in the database.
Additionally users had to be imported separately. We wrote a script to ensure that each post was assigned to the correct ID, and since the current roadfood.com site already had thousands of users that were not on the forums site, we had to write a custom script increasing the user id integers of the forum users by 10,000. Rigorous testing was done to ensure each user had correctly connected to their posts.
Since BBPress was a requirement of the project, we had to get creative and overcome some issues with it’s out of the box functionality. BBpress did not offer direct messaging, however, we were able to build upon the direct messaging add-on for BBPress to once again offer that functionality for the forum users.
Another issue we overcame had to do with how BBpress had limits in the amount of nested conversation/replies it could display at a time. With tens of thousands of replies to topics, BBPress would throw 504 errors. We resolved this with some clever use of Ajax to minimize the initial load of replies and a customized pagination experience, which made the user experience light and fast.