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'