En este tutorial, aprenderemos cómo migrar un foro de MyBB a la plataforma
utilizando el script oficial de importación de MyBB MyBB_importer.
Qué se puede migrar
- Categorías
- Categoría raíz => categoría raíz
- Categoría hija => subcategoría
- Foro raíz => subcategoría
- Foro hijo => subcategoría
- Hilos y respuestas => temas y publicaciones
- Usuarios
- nombre de usuario
- correo electrónico
- estado de privilegios
- estado de registro
- Redirecciones
Nuestro plan es muy simple:
- Configurar el entorno de desarrollo (DEV) local.
- Exportar la base de datos de producción.
- Importar la base de datos de producción a Discourse.
- Ejecutar el script de importación de MyBB.
¡Comencemos ![]()
Configurar el entorno de desarrollo (DEV) local
En primer lugar, debes seguir una de estas guías para instalar la plataforma Discourse en sí. Consulta esta guía si tienes algún problema.
Instala el servidor de base de datos MySQL;
MacOS:
$ brew install mysql@5.7
$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
Verifica el estado del servicio:
$ brew services list
Deberías ver algo como esto:
mysql@5.7 started
De lo contrario, ejecuta lo siguiente e inténtalo de nuevo:
$ brew services start mysql@5.7
Ubuntu 18.04:
$ sudo apt update
$ sudo apt install mysql-server -y
Después de terminar de instalar MySQL, verifica su estado:
$ systemctl status mysql.service
Si no se está ejecutando, ejecuta lo siguiente:
$ sudo systemctl start mysql
Para Windows, puedes seguir la guía de instalación oficial.
Llamaremos a este entorno: servidor de Discourse.
Exportar la base de datos de producción
Exporta/respalda la base de datos de producción (desde el servidor de producción de MyBB) ejecutando:
$ mysqldump -u USER_NAME -p DATABASE_NAME > mybb_dump.sql
- Copia este volcado de base de datos al servidor de Discourse.
Puedes usar
scporsyncpara copiar la base de datos.
Importar la base de datos de producción a Discourse
En el servidor de Discourse, crea una base de datos:
$ mysql -u root
Si tu usuario de DB tiene una contraseña, debes usar:
mysql -u root -py luego escribir tu contraseña.
mysql> CREATE DATABASE mybb;
Asegúrate de que la base de datos se haya creado correctamente ejecutando:
mysql> SHOW DATABASES;
Deberías ver algo como:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| mybb |
| sys |
+--------------------+
La base de datos mybb está vacía por ahora. Nuestro siguiente paso es importar la base de datos de producción en ella.
$ mysql -u root mybb < mybb_dump.sql
Más adelante, necesitaremos el prefijo de tabla. Así que, mientras estamos aquí, obtengámoslo.
$ mysql -u root
mysql> USE mybb;
mysql> SHOW TABLES;
Verás algo como esto:
+--------------------------+
| Tables_in_mybb |
+--------------------------+
| mybb_adminlog |
| mybb_adminoptions |
| mybb_adminsessions |
| mybb_adminviews |
| mybb_announcements |
| mybb_attachments |
| mybb_attachtypes |
| ...El resto de tablas....|
+--------------------------+
Nuestro prefijo de tabla es mybb_ según muestra la salida.
Ejecutar el script de importación de MyBB
- Primero, instalemos las dependencias del importador. Desde el servidor de Discourse:
$ cd ~/discourse
$ echo "gem 'mysql2', require: false" >> Gemfile
$ bundle install
A continuación, debes configurar el script para que funcione correctamente. Copia y pega lo siguiente en tu shell (cambia los valores si es necesario):
export DB_HOST="localhost"
export DB_NAME="mybb"
export DB_PW=""
export DB_USER="root"
export TABLE_PREFIX="mybb_"
Tienes otra opción para configurar el script. Abre script/import_scripts/mybb.rb en cualquier editor de tu elección y cambia los valores dentro de las comillas dobles para que se ajusten a tus necesidades:
DB_HOST ||= ENV['DB_HOST'] || "localhost"
DB_NAME ||= ENV['DB_NAME'] || "mybb"
DB_PW ||= ENV['DB_PW'] || ""
DB_USER ||= ENV['DB_USER'] || "root"
TABLE_PREFIX ||= ENV['TABLE_PREFIX'] || "mybb_"
Ejecuta el importador con una instancia limpia de Discourse:
$ bundle exec rails db:drop
$ bundle exec rails db:create
$ bundle exec rails db:migrate
$ bundle exec ruby script/import_scripts/mybb.rb
El importador se conectará al servidor MySQL y migrará tu base de datos de MyBB a la base de datos de Discourse.
Después de que el importador termine, inicia la instancia de Discourse ejecutando:
$ bundle exec rails server
A continuación, inicia Sidekiq (procesador de trabajos en segundo plano) para procesar los datos migrados:
$ bundle exec sidekiq
Puedes monitorear el progreso de Sidekiq en
http://localhost:3000/sidekiq/queues.
Configura tu servidor de producción de Discourse siguiendo este tutorial.
Realiza una copia de seguridad de la plataforma Discourse (servidor local de Discourse) y súbela a tu servidor de producción de Discourse siguiendo este tutorial.
![]()
Si tienes alguna pregunta sobre el proceso, estaré encantado de ayudar.
¡Feliz migración ![]()


