My self-set deadline for the successful conversion of three forums was last Friday. I did successfully import the pt.forums.wordpress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ forum by the deadline, but restricted the import set to only include content and tags. I did not update subscriptions and favorites because it was a test upgrade, but I will include those in a final scheduled upgrade. No one will lose their subscriptions or favorites during this move.
The import class that I am using needs to scale so that it works with the https://wordpress.org/support forum, which has over ten million posts. There are already some cracks showing when dealing with user roles across the forums because of the shared user tables which allow one user to have a role on multiple forums and blogs on the WordPress.org sites. In the import class, I use the existing bbPress queries as a basis for custom MySQL INSERT VALUES statements, which combine many small INSERTs into far fewer database writes. This has given me some insight into queries that will not perform well against the larger support forum dataset.
Favorites are stored solely in user metadata and keyed by forum in both bbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org. 1 and bbPress 2. This is a fairly simple query against the usermeta table as it is fetched on a per-user basis.
bbPress 1 stores user subscriptions as taxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. terms. As the importer class adds topics and their associated terms to the new site tables, it stores subscriptions as a temporary array of user ids in the postmeta for that topic. Once a forum is upgraded, I can page through the topic postmeta and add the appropriate subscriptions on a user-by-user basis.
In bbPress 2, subscriptions for forums are stored in the usermeta table and are fetched for a given topic using a FIND_IN_SET MySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. flag. We end up having to traverse all of the user subscriptions for a given forum in order to find the subscriptions for a single topic. This query is performed in bbPress 2 whenever new topic or reply notifications are sent. Given the size of the support forum WordPress Support Forums is a place to go for help and conversations around using WordPress. Also the place to go to report issues that are caused by errors with the WordPress code and implementations., I cannot see this query scaling well for forum and topic subscriptions.
After a conversation with @jjj about optimizing this in bbPress, he opened a new issue to handle improving user subscription and favorite queries. I will continue to upgrade forums using the old style of favorite and subscription storage, but will also be working on that Trac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. ticket in order to allow subscriptions to work on large forum datasets.
I will still be converting a number of WordPress.org forums to their bbPress 2 equivalent, including their users’ current subscriptions and favorites. It takes the import class less than fifteen minutes to run on a forum with approximately ten thousand posts and the associated terms, with a lot of sleep()
s thrown in “just in case”. User meta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. will add to that, but not much.
The upgrade process should run as follows:
- Post to forum with a scheduled time and date for the upgrade. I will try to schedule upgrades for local off-hours.
- Close forum to new posts when scheduled. It will still be searchable and available until the redirects are in place.
- Run the upgrade script.
- Confirm that redirects are in place for *.forums.wordpress.org to *.wordpress.org/support. At this point, the old forum will redirect users to the newly upgraded forum.
Larger forum imports will require backfilling the majority of the forum while it is still live, then doing a partial import of those topics and replies that were not backfilled. After that, the usermeta import can be staged for forum roles, favorites, and subscriptions.
July 1st is still the deadline for the plugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party conversion; most of the overhead is now in working on plugins, as the import script runs fairly quickly and can do forum conversions “live”.
#forums