¡Gracias por los scripts!
Sin embargo, siento que el manual está bastante crudo y poco claro. Tuve que consultar, por ejemplo, la guía de migración de Xenforo para entender realmente qué sugieres aquí. Permíteme agregar algunos pasos faltantes:
- Tener Discourse funcionando
- Crear un mysqldump del Phorum original - todo claro, todo bien.
- Copiar el volcado de la base de datos a la carpeta de Discourse
docker cp/path/to/backup/phorum_db.sql.gz app:/shared/phorum_db.sql.gz(asumiendoappcomo nombre de contenedor estándar)
Y aquí las partes faltantes: - Entrar realmente al contenedor Docker de Discourse e instalar MySQL allí:
docker exec -it app bash apt-get update && apt-get upgrade
# pv solo para conveniencia para mostrar el progreso, lsb-release es requerido por algo apt-get install -y lsb-release pv mariadb-server mariadb-client libmariadb-dev service mariadb start
Nota: la instalación de MySQL es un poco más complicada, pero Mariadb debería funcionar igual de bien.
Luego, crea una base de datos: mysql → CREATE database phorum.
Luego, llénala desde la copia de seguridad: pv phorum_db.sql.gz | gunzip | mysql phorum (no es necesario gunzip si tu volcado es sql puro).
Agrega soporte de MySQL a Ruby:
cd /var/www/discourse/
echo "gem 'mysql2'" >>Gemfile
bundle config unset deployment
bundle install --no-deployment
Modifica los datos en el script de migración (credenciales de la base de datos, prefijo, permalinks):
nano /var/www/discourse/script/import_scripts/phorum.rb
Y luego, volviendo a la guía de la publicación original, todo está bien allí:
Ejecuta el importador con una instancia limpia de Discourse:
git config --global --add safe.directory /var/www/discourse bundle exec ruby script/import_scripts/phorum.rb
Si tu base de datos de Discourse no está realmente limpia, es mejor limpiarla con bundle exec rake db:drop db:create db:migrate de antemano.
Si falla con “PG::ConnectionBad: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "discourse" (PG::ConnectionBad)”:
- Si obtienes el error
'Peer authentication failed for user \"discourse\"':- Edita el archivo
/etc/postgresql/13/main/pg_hba.conf- cambia todos los ‘peer’ a ‘trust’ y guarda el archivo
- recarga el servidor postgres:
/etc/init.d/postgresql reload(o quizáspsql -U postgres -c \"SELECT pg_reload_conf();\", pero esto a veces me fallaba).
Primero, ejecuta las migraciones de usuarios, que pueden ser relativamente lentas (~1.2k usuarios/minuto según la salida del script. Tuve 100k usuarios, así que…). Luego, crea categorías y comienza a migrar mensajes y temas (misma velocidad, ~1.2k/minuto), pero en este punto ya puedes acceder al sitio web y ver cómo se ve.
Parece mucho más fluido de lo que esperaba para un motor tan antiguo como Phorum. Parece que no hay migración de Mensajes Privados (PM), pero al menos no debería ser un obstáculo para mí.
¡Gracias de nuevo por el script y los esfuerzos!