In questo tutorial, impareremo come migrare un forum MyBB alla piattaforma
utilizzando lo script ufficiale MyBB Importer.
Cosa può essere migrato
- Categorie
- Categoria radice => categoria radice
- Sottocategoria => sottocategoria
- Forum radice => sottocategoria
- Sottoforum => sottocategoria
- Thread e risposte => topic e post
- Utenti
- Nome utente
- Stato privilegi
- Stato registrazione
- Redirezionamenti
Il nostro piano è molto semplice:
- Configurare l’ambiente di sviluppo (DEV) locale.
- Esportare il database di produzione.
- Importare il database di produzione in Discourse.
- Eseguire lo script MyBB importer.
Cominciamo ![]()
Configurazione dell’ambiente DEV locale
Per prima cosa, devi seguire una di queste guide per installare la piattaforma Discourse stessa. Consulta questa guida se incontri problemi.
Installa il server di database MySQL;
MacOS:
$ brew install mysql@5.7
$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
Controlla lo stato del servizio:
$ brew services list
Dovresti vedere qualcosa del genere:
mysql@5.7 started
Altrimenti, esegui il comando seguente e riprova:
$ brew services start mysql@5.7
Ubuntu 18.04:
$ sudo apt update
$ sudo apt install mysql-server -y
Dopo aver completato l’installazione di MySQL, controlla il suo stato:
$ systemctl status mysql.service
Se non è in esecuzione, esegui il comando seguente:
$ sudo systemctl start mysql
Per Windows, puoi seguire la guida ufficiale all’installazione.
Chiameremo questo ambiente: server Discourse.
Esportazione del database di produzione
Esporta/Esegui il backup del database di produzione (dal server MyBB di produzione) eseguendo:
$ mysqldump -u NOME_UTENTE -p NOME_DATABASE > mybb_dump.sql
- Copia questo dump del database sul server Discourse.
Puoi utilizzare
scporsyncper copiare il database.
Importazione del database di produzione in Discourse
Sul server Discourse, crea un database:
$ mysql -u root
Se il tuo utente DB ha una password, dovresti usare:
mysql -u root -pe poi inserire la tua password.
mysql> CREATE DATABASE mybb;
Assicurati che il database sia stato creato con successo eseguendo:
mysql> SHOW DATABASES;
Dovresti vedere qualcosa del genere:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| mybb |
| sys |
+--------------------+
Il DB mybb è vuoto al momento. Il nostro prossimo passo è importare il database di produzione al suo interno.
$ mysql -u root mybb < mybb_dump.sql
In seguito, avremo bisogno del prefisso delle tabelle. Quindi, mentre siamo qui, otteniamolo.
$ mysql -u root
mysql> USE mybb;
mysql> SHOW TABLES;
Vedrai qualcosa del genere:
+--------------------------+
| Tables_in_mybb |
+--------------------------+
| mybb_adminlog |
| mybb_adminoptions |
| mybb_adminsessions |
| mybb_adminviews |
| mybb_announcements |
| mybb_attachments |
| mybb_attachtypes |
| ...Il resto delle tabelle...|
+--------------------------+
Il nostro prefisso delle tabelle è mybb_ come mostra l’output.
Esecuzione dello script MyBB Importer
- Installiamo prima le dipendenze dell’importer. Dal server Discourse:
$ cd ~/discourse
$ echo "gem 'mysql2', require: false" >> Gemfile
$ bundle install
Successivamente, dovresti configurare lo script per eseguirlo correttamente. Copia e incolla il seguente codice nel tuo terminale (modifica i valori se necessario):
export DB_HOST="localhost"
export DB_NAME="mybb"
export DB_PW=""
export DB_USER="root"
export TABLE_PREFIX="mybb_"
Hai un’altra opzione per configurare lo script. Apri script/import_scripts/mybb.rb in qualsiasi editor a tua scelta e modifica i valori all’interno delle virgolette doppie in modo che corrispondano alle tue esigenze:
DB_HOST ||= ENV['DB_HOST'] || "localhost"
DB_NAME ||= ENV['DB_NAME'] || "mybb"
DB_PW ||= ENV['DB_PW'] || ""
DB_USER ||= ENV['DB_USER'] || "root"
TABLE_PREFIX ||= ENV['TABLE_PREFIX'] || "mybb_"
Esegui l’importer con un’istanza pulita di Discourse:
$ bundle exec rails db:drop
$ bundle exec rails db:create
$ bundle exec rails db:migrate
$ bundle exec ruby script/import_scripts/mybb.rb
L’importer si connetterà al server MySQL e migrerà il tuo database MyBB nel database Discourse.
Dopo che l’importer ha terminato, avvia l’istanza di Discourse eseguendo:
$ bundle exec rails server
Successivamente, avvia Sidekiq (elaboratore di job in background) per elaborare i dati migrati:
$ bundle exec sidekiq
Puoi monitorare l’avanzamento di Sidekiq su
http://localhost:3000/sidekiq/queues.
Configura il tuo server di produzione Discourse seguendo questo tutorial.
Esegui un backup della piattaforma Discourse (server Discourse locale) e caricalo sul tuo server di produzione Discourse seguendo questo tutorial.
![]()
Se hai domande sul processo, sono felice di aiutarti.
Buona migrazione ![]()


