Migrer un forum XenForo vers Discourse

Je viens de terminer une migration de Xenforo vers Discourse d’un forum d’un million de messages sur un droplet Digital Ocean. Voici ce qui a fonctionné pour moi, commande par commande (très similaire à ce que je viens de faire sur un autre forum vBulletin).

Je recommande un minimum de 4 vCPU/8 Go pour l’importation.

Merci à tous ceux qui ont participé à ce fil pour m’avoir aidé à réaliser ces migrations ; cela a été quelques jours bien remplis à lire et relire…

1 - Installer le droplet Discourse 1-clic de Digital Ocean

2 - Terminer l’installation de Discourse via SSH en suivant les invites

Ouvrir la console SSH
root
(votre_mot_de_passe_root)
(entrer)
(votredomaine).com
etc

3 - Se connecter en SFTP

sftp root@XXX.XXX.XX.XX
y (si une confirmation est demandée)
yes
(votre_mot_de_passe_root)
put db.sql /var/discourse/shared/standalone/db.sql

4 - Se connecter au site web pour configurer le compte administrateur

5 - Se connecter en SSH - Démarrer le processus

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 - Installer MariaDB (remplacement de mysql)

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

7 - Configuration de la base de données MySQL

service mysql start
mysql -u root -p
mot_de_passe
create database import_db;
exit;

8 - Importation du dump → Transfert vers la base de données MySQL**

mysql -u root -p import_db < /shared/db.sql
mot_de_passe

9 - Fichier 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'
(ignorer le résultat en rouge)

10 - Configurer le script d’installation

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

---Apporter les modifications nécessaires au fichier texte pour le nom de la base de données/mot de passe, le préfixe, etc---

(esc)
:wq

11 - Configuration de Bundle

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

12 - Configuration MySQL (il est peut-être possible de le faire avec l’étape précédente)

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

13 - Script d’installation

su discourse -c 'bundle exec ruby script/import_scripts/xenforo.rb'
4 « J'aime »