Resumiendo el viaje (¡mucho más largo que esta publicación!
):
NOTA: Utilicé una distribución de Kubuntu que se ejecuta en una máquina virtual para el proceso, así que ten en cuenta que puede no ser lo mismo en diferentes sistemas operativos o incluso distribuciones.
0. Instalación del entorno de desarrollo de Discourse
Siguiendo esta publicación y ejecutando este script enlazado en la publicación usando
`bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)`
como se describe allí, además de clonar las fuentes
git clone https://github.com/discourse/discourse.git ~/discourse
1. Preparación de la base de datos MySQL
Obtén un volcado de la base de datos mybb original como se describe en la parte superior del hilo:
$ mysqldump -u NOMBRE_USUARIO -p NOMBRE_BASE_DATOS > mybb_dump.sql
y cópialo/muévelo al nuevo entorno de desarrollo configurado.
Instala el servidor MySQL
$ sudo apt-get install mysql-server
La autenticación para mysql ha cambiado en versiones más recientes. Tienes que ser root en el host si quieres ser root en mysql en estos días, así que
$ sudo mysql
en lugar de
$mysql -u root
Por supuesto, primero tienes que ser un “sudoer” (administrador)
$ sudo mysql
mysql> CREATE DATABASE mybb;
mysql> SHOW DATABASES;
mysql> CREATE USER 'nonrootuser'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON mybb.* TO 'nonrootuser'@'localhost';
mysql> quit
$ mysql -unonrootuser -ppassword mybb < mybb_dump.sql
<aquí obtienes una advertencia sobre que proporcionar la contraseña en la línea de comandos no es algo inteligente de hacer>
$ sudo mysql
mysql> USE mybb;
mysql> SHOW TABLES;
<aquí verifica si todas las tablas están presentes - ver la publicación original>
mysql> quit
2. Instalar gemas de Ruby
Al verificar el Gemfile en las fuentes actuales, se revela que
$ echo "gem 'mysql2', require: false" >> Gemfile
no es realmente necesario. Es suficiente establecer la variable de entorno IMPORT a 1.
Lo que sí se necesita son los archivos de desarrollo para los clientes de MySQL, que es para lo que sirve la primera línea a continuación.
$ sudo apt-get install libmysqlclient-dev
$ cd ~/discourse
$ IMPORT=1 bundle install
2. Preparar Discourse (base de datos PostgreSQL)
$ bundle exec rails db:drop
$ bundle exec rails db:create
$ bundle exec rails db:migrate
$ export DB_PW="password"
$ export DB_USER="nonrootuser"
3. Ejecutar la importación real
La siguiente línea corrige una llamada a método muy obsoleta y actualmente ya eliminada en el script de importación mybb.rb, que todavía está allí en el momento de escribir esto y no cambiará nada si ya está corregido.
$ sed -i.original 's/File.exists?/File.exist?/' script/import_scripts/mybb.rb
Ahora comprueba si Redis todavía se está ejecutando. El script de instalación de Rails lo inicia pero no lo habilita como un servicio permanente, por lo que no sobrevive a reinicios, fallos, etc.
$ ps -aux |grep redis
silverdr 2808 0.3 0.3 89972 14512 ? Ssl 05:25 2:04 redis-server *:6379
[….]
Si no ves nada parecido a la línea anterior, ejecuta
$ redis-server --daemonize yes
que es exactamente el mismo comando que utilizó el script de instalación de Rails la primera vez al instalar.
Finalmente
y
$ IMPORT=1 bundle exec ruby script/import_scripts/mybb.rb
Si en este momento el script no se detuvo con YAE (Yet Another Error - Otro Error Más), entonces es hora de descorchar esa botella 
Quedan algunas cosas
- OK - así que la única parte obvia que falta son las contraseñas de los usuarios. Aparentemente, aunque ambas aplicaciones almacenan hash y sal, a juzgar por la longitud de esos hashes, “mybb” utiliza un algoritmo de hash más antiguo. Por lo tanto, esto es comprensible y no es un impedimento. Todos deberían poder restablecer su contraseña la primera vez.
- Algunas cosas de bbcode no se convierten. Por ejemplo, tengo problemas con los bloques de código, que tienen algunas etiquetas alrededor que establecen la fuente monoespaciada Courier y otras cosas. Ya no tengo fuerzas para intentar automatizar esto más. Si logras hacer algo al respecto, ¡por favor házmelo saber a mí / a nosotros aquí!
