Acabei de finalizar uma migração de Xenforo para Discourse de um fórum com um milhão de posts em um droplet da Digital Ocean. Aqui está o que funcionou para mim, comando por comando (muito similar ao que fiz recentemente em outro fórum vBulletin).
Recomendo no mínimo 4 vCPU/8GB para a importação.
Obrigado a todos neste tópico por me ajudarem a passar por essas migrações; definitivamente foram alguns dias divertidos lendo e relendo..
1 - Instalar o droplet de 1 clique do Discourse na Digital Ocean
2 - Concluir a instalação do Discourse via SSH seguindo as instruções
Abrir console SSH
root
(sua senha de root)
(enter)
(seu dominio).com
etc
3 - Fazer login no SFTP
sftp root@XXX.XXX.XX.XX
y (se for solicitado confirmação)
yes
(sua senha de root)
put db.sql /var/discourse/shared/standalone/db.sql
4 - Fazer login no site para configurar a conta de Administrador
5 - Fazer login no SSH - Iniciar Processo
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 (substituto do mysql)
apt-get update && apt-get install mariadb-server-10.3 libmariadbd-dev
y
7 - Configuração do Banco de Dados Mysql
service mysql start
mysql -u root -p
senha
create database import_db;
exit;
8 - Importar Dump → Transferência para Banco de Dados Mysql
mysql -u root -p import_db < /shared/db.sql
senha
9 - Arquivo 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'
(ignore o resultado em texto vermelho)
10 - Configurar script de instalação
vi /var/www/discourse/script/import_scripts/xenforo.rb
---Faça edições no arquivo de texto conforme necessário para nome/senha do banco de dados, prefixo, etc---
(esc)
:wq
11 - Configuração do Bundle
bundle config set path 'vendor/bundle'
bundle config set without 'development:test'
bundle config unset deployment
su discourse -c 'bundle install'
12 - Configuração do Mysql (talvez seja possível fazer isso com o anterior)
mysql --version
sudo mysql -u root -p
senha
ALTER USER 'root'@'localhost' IDENTIFIED BY 'senha';
FLUSH PRIVILEGES;
exit
13 - Script de Instalação
su discourse -c 'bundle exec ruby script/import_scripts/xenforo.rb'