Migrar um fórum XenForo para Discourse

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'
4 curtidas