Migrare un forum Phorum a Discourse

Grazie per gli script!

Tuttavia, ritengo che il manuale sia piuttosto grezzo e poco chiaro. Ho dovuto fare riferimento, ad esempio, alla guida alla migrazione di Xenforo per capire effettivamente cosa suggerisci qui. Lascia che aggiunga alcuni passaggi mancanti:

  • Avere Discourse attivo e funzionante
  • Creare mysqldump dal Phorum originale - tutto chiaro, tutto a posto.
  • Copiare il dump del database nella cartella di Discourse docker cp/path/to/backup/phorum_db.sql.gz app:/shared/phorum_db.sql.gz (assumendo app come nome contenitore standard)
    E qui le parti mancanti:
  • Accedere effettivamente al container Docker di Discourse e installare MySQL lì:
docker exec -it app bash
apt-get update && apt-get upgrade
# pv solo per comodità per visualizzare l'avanzamento, lsb-release è richiesto da qualcosa
apt-get install -y lsb-release pv mariadb-server mariadb-client libmariadb-dev
service mariadb start

Nota che l’installazione di MySQL è un po’ più complicata, ma Mariadb dovrebbe funzionare ugualmente bene.

Quindi creare un database: mysqlCREATE database phorum.

Quindi riempirlo dal backup: pv phorum_db.sql.gz | gunzip | mysql phorum (non è necessario gunzip se il tuo dump è sql puro)

Aggiungere il supporto MySql a Ruby:

cd /var/www/discourse/
echo "gem 'mysql2'" >>Gemfile
bundle config unset deployment
bundle install --no-deployment

Modificare i dati nello script di migrazione (credenziali del database, prefisso, permalink):

nano /var/www/discourse/script/import_scripts/phorum.rb

E poi tornare alla guida del post originale, tutto a posto lì:

Eseguire l’importatore con un’istanza Discourse pulita:

git config --global --add safe.directory /var/www/discourse
bundle exec ruby script/import_scripts/phorum.rb

Se il tuo database Discourse non è veramente pulito, è meglio pulirlo prima con bundle exec rake db:drop db:create db:migrate.

Se fallisce con “PG::ConnectionBad: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "discourse" (PG::ConnectionBad)”:

  1. Se ricevi l’errore 'Peer authentication failed for user \"discourse\"':
  2. Modifica il file /etc/postgresql/13/main/pg_hba.conf
  3. cambia tutti i ‘peer’ in ‘trust’ e salva il file
  4. ricarica il server postgres: /etc/init.d/postgresql reload (o forse psql -U postgres -c \"SELECT pg_reload_conf();\", ma a volte questo mi dava errore)

Prima esegue le migrazioni degli utenti che potrebbero essere relativamente lente (~1.2k utenti/minuto secondo l’output dello script. Avevo 100k utenti, quindi…). Poi crea le categorie e inizia a migrare messaggi e argomenti (stessa velocità, ~1.2k/minuto), ma a questo punto puoi già accedere al sito web e vedere come appare.

Sembra molto più fluido di quanto mi aspetterei per un motore così antico come Phorum. Sembra che non ci sia migrazione di messaggi privati (PM), ma almeno per me non dovrebbe essere un blocco.

Grazie ancora per lo script e per gli sforzi!