Gracias, voy a trabajar en esto.
¡Y disculpen la desviación del tema!
Edición: mi script funcionó bien, así que aquí explico cómo lo hice, por si le interesa a alguien que quiera “desfusionar” una categoría después de reorganizar sus temas de phpBB en Discourse:
- Instalé Discourse Data Explorer
- Obtuve los posts importados de Discourse de la categoría que elegí con esta consulta y descargué el resultado como JSON:
SELECT
topics.id as d_topic_id,
slug,
value as phpbb_topic_id
FROM topics
JOIN topic_custom_fields
ON topic_id = topics.id
AND name = 'import_topic_id'
AND category_id = 5
- Obtuve la lista de temas de phpBB de la(s) categoría(s) que elegí desde phpMyAdmin y exporté el resultado como JSON:
SELECT topic_id FROM phpbb_topics
JOIN phpbb_forums
ON phpbb_topics.forum_id = phpbb_forums.forum_id
AND phpbb_forums.forum_id = 20
Luego puedes iterar sobre uno de tus JSON; en cada iteración, si phpbb_topic_id también está presente en el segundo array, puedes moverlo a una nueva categoría de tu elección.
Para hacerlo, utilicé GitHub - communiteq/discourse-api-php: PHP API client for Discourse · GitHub y agregué un método para actualizar la categoría de un tema.