Migrar un foro XenForo a Discourse

Acabo de finalizar una migración de Xenforo a Discourse de un foro con un millón de publicaciones en un droplet de Digital Ocean. Esto es lo que funcionó para mí, comando por comando (muy similar a lo que acabo de hacer en otro foro de vBulletin).

Se recomienda un mínimo de 4 vCPU y 8 GB de RAM para la importación.

Gracias a todos en este hilo por ayudarme a superar estas migraciones; definitivamente han sido unos días divertidos leyendo y releendo.

1 - Instalar el droplet de Discourse de 1 clic de Digital Ocean

2 - Finalizar la instalación de Discourse mediante SSH siguiendo las indicaciones

Abrir la consola SSH
root
(tu_contraseña_de_root)
(enter)
(tudominio).com
etc

3 - Iniciar sesión en SFTP

sftp root@XXX.XXX.XX.XX
y (si se solicita confirmación)
yes
(tu_contraseña_de_root)
put db.sql /var/discourse/shared/standalone/db.sql

4 - Iniciar sesión en el sitio web para configurar la cuenta de administrador

5 - Iniciar sesión en SSH - Iniciar el proceso

ssh root@XXX.XXX.XX.XX
cd /var/discourse
./launcher start app
docker exec -it app bash
sudo apt-get update
sudo apt-get upgrade
y

6 - Instalar MariaDB (reemplazo de MySQL)

apt-get update && apt-get install mariadb-server-10.3 libmariadbd-dev
y

7 - Configuración de la base de datos MySQL

service mysql start
mysql -u root -p
contraseña
create database import_db;
exit;

8 - Importar volcado → Transferencia a la base de datos MySQL

mysql -u root -p import_db < /shared/db.sql
contraseña

9 - Archivo GEM

echo "gem 'mysql2'" >> Gemfile
echo "gem 'mysql2', require: false" >> /var/www/discourse/Gemfile
echo "gem 'php_serialize', require: false" >> /var/www/discourse/Gemfile
cd /var/www/discourse
su discourse -c 'bundle install --no-deployment --without test --without development --path vendor/bundle'
(ignora el resultado en texto rojo)

10 - Configurar el script de instalación

vi /var/www/discourse/script/import_scripts/xenforo.rb

---Realiza las ediciones necesarias en el archivo de texto para el nombre de la base de datos, contraseña, prefijo, etc.---

(esc)
:wq

11 - Configuración de Bundle

bundle config set path 'vendor/bundle'
bundle config set without 'development:test'
bundle config unset deployment
su discourse -c 'bundle install'

12 - Configuración de MySQL (quizás sea posible hacerlo con el paso anterior)

mysql --version
sudo mysql -u root -p
contraseña
ALTER USER 'root'@'localhost' IDENTIFIED BY 'contraseña';
FLUSH PRIVILEGES;
exit

13 - Script de instalación

su discourse -c 'bundle exec ruby script/import_scripts/xenforo.rb'
4 Me gusta