He creado un script de migración para importar una base de datos de FluxBB a Discourse. Ahora explicaré cómo realizar el proceso de importación en un tutorial paso a paso.
He probado este script de migración con FluxBB v1.5.10 (que es la versión actual).
¿Qué datos se pueden importar?
- Usuarios (incluyendo biografías y firmas)
- Grupos
- Categorías
Los permisos no se importarán y todas las categorías serán públicas. Los permisos adecuados deben configurarse manualmente después de la importación. - Temas (incluyendo el estado de fijos/anclados)
- Publicaciones
- Usuarios suspendidos
Antes de iniciar la migración, configura un entorno de desarrollo en tu máquina (o dentro de una máquina virtual). Consulta la guía de instalación para desarrollo en macOS o Ubuntu.
Discourse requiere Ruby 3.4 o superior. Para verificar tu versión de Ruby, ejecuta el siguiente comando:
ruby -v
MySQL
Ahora necesitamos la gema mysql2 para Ruby para conectarnos a nuestra antigua base de datos de FluxBB. Ejecuta los siguientes comandos para instalar la dependencia libmysqlclient-dev y la gema mysql2.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libmysqlclient-dev
gem install mysql2
(Opcional) Importar volcado MySQL en localhost
Para instalar el cliente de MySQL e importar un archivo de volcado MySQL (.sql) en tu máquina de desarrollo, sigue las instrucciones a continuación:
sudo apt-get install mysql-server mysql-client
Crea el usuario de MySQL, los privilegios y la tabla:
mysql -u root -p mysql
mysql> CREATE USER 'fluxbb'@'localhost' IDENTIFIED BY 'fluxbb';
Query OK, 0 rows affected (0.00 sec)
.
mysql> CREATE DATABASE fluxbb;
Query OK, 1 row affected (0.01 sec)
.
mysql> GRANT ALL PRIVILEGES ON fluxbb.* TO 'fluxbb'@'localhost';
Query OK, 0 rows affected (0.00 sec)
.
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
.
mysql> exit
Importa el archivo de volcado de tu base de datos de FluxBB:
mysql -u fluxbb -p fluxbb < myfluxbb.sql
De BBCode a Markdown
El script de importación maneja la conversión de BBCode a Markdown automáticamente. No se necesitan gemas adicionales para esto.
Después de instalar mysql2, ve a la ruta de instalación de Discourse y abre Gemfile para editarlo.
cd ~/discourse
sudo nano Gemfile
Ahora inserta la siguiente línea al final del archivo para agregar la gema mysql2 a Discourse.
gem 'mysql2'
Antes de ejecutar el script de importación, pega estas líneas una por una en tu terminal (usa las flechas del teclado para editar los valores):
export FLUXBB_HOST="localhost"
export FLUXBB_DB="fluxbb"
export FLUXBB_USER="root"
export FLUXBB_PW=""
export FLUXBB_PREFIX=""
Ahora es el momento de ejecutar el script de importación. Ejecuta el siguiente comando para iniciar la migración:
RAILS_ENV=production bundle exec ruby script/import_scripts/fluxbb.rb
Espera hasta que la importación haya finalizado. Puedes reiniciarlo si se vuelve extremadamente lento.
¡Después de todo, felicidades! Tu base de datos se ha migrado correctamente de FluxBB a Discourse ![]()
Inicia tu instancia de Discourse:
bundle exec rails server
Inicia Sidekiq y deja que haga su trabajo:
bundle exec sidekiq -q critical,4 -q default,2 -q low
Dependiendo del tamaño de tu foro, esto puede tardar un tiempo. Puedes monitorear el progreso en http://localhost:3000/sidekiq.
Ahora realiza una copia de seguridad desde la página de administración /admin/backups e impórtala en tu sitio web de Discourse en vivo.