Merci pour les scripts !
Cependant, j’ai l’impression que le manuel est assez brut et peu clair. J’ai dû me référer, par exemple, au guide de migration Xenforo pour bien comprendre ce que vous suggérez ici. Laissez-moi ajouter quelques étapes manquantes :
- Avoir Discourse opérationnel
- Créer un mysqldump du Phorum original - tout est clair, tout va bien.
- Copier le dump de la base de données dans le dossier Discourse
docker cp/path/to/backup/phorum_db.sql.gz app:/shared/phorum_db.sql.gz(en supposantappcomme nom de conteneur standard)
Et voici les parties manquantes : - Accéder au conteneur Docker de Discourse et y installer MySQL :
docker exec -it app bash apt-get update && apt-get upgrade
# pv juste pour afficher la progression, lsb-release est requis par quelque chose apt-get install -y lsb-release pv mariadb-server mariadb-client libmariadb-dev service mariadb start
Notez que l’installation de MySQL est un peu plus compliquée, mais Mariadb devrait fonctionner aussi bien.
Ensuite, créez une base de données : mysql → CREATE database phorum.
Puis remplissez-la à partir de la sauvegarde : pv phorum_db.sql.gz | gunzip | mysql phorum (pas besoin de gunzip si votre dump est un sql brut)
Ajoutez le support MySql à Ruby :
cd /var/www/discourse/
echo "gem 'mysql2'" >>Gemfile
bundle config unset deployment
bundle install --no-deployment
Modifiez les données dans le script de migration (identifiants de base de données, préfixe, permaliens) :
nano /var/www/discourse/script/import_scripts/phorum.rb
Et ensuite, revenez au guide du post original, tout va bien là-bas :
Lancez l’importateur avec une instance Discourse propre :
git config --global --add safe.directory /var/www/discourse bundle exec ruby script/import_scripts/phorum.rb
Si votre base de données Discourse n’est pas vraiment propre, il est préférable de la nettoyer avec bundle exec rake db:drop db:create db:migrate au préalable.
Si cela échoue avec “PG::ConnectionBad: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "discourse" (PG::ConnectionBad)” :
- Si vous obtenez l’erreur
'Peer authentication failed for user \"discourse\"':- Modifiez le fichier
/etc/postgresql/13/main/pg_hba.conf- changez tous les ‘peer’ en ‘trust’ et enregistrez le fichier
- rechargez le serveur postgres :
/etc/init.d/postgresql reload(ou peut-êtrepsql -U postgres -c \"SELECT pg_reload_conf();\", mais cela échouait parfois pour moi)
D’abord, il exécute les migrations d’utilisateurs qui peuvent être relativement lentes (~1.2k utilisateurs/minute selon la sortie du script. J’avais 100k utilisateurs, donc…). Ensuite, il crée les catégories et commence à migrer les messages et les sujets (même vitesse, ~1.2k/minute), mais à ce stade, vous pouvez déjà accéder au site web et voir à quoi cela ressemble.
Cela semble beaucoup plus fluide que ce à quoi je m’attendrais pour un moteur aussi ancien que Phorum. Il semble qu’il n’y ait pas de migration des messages privés (PM), mais cela ne devrait pas être un obstacle pour moi au moins.
Merci encore pour le script et les efforts !