In questo tutorial, impareremo come migrare un forum PunBB alla piattaforma
utilizzando lo script Importer ufficiale. Cominciamo ![]()
Cosa può essere migrato
-
Argomenti e risposte => argomenti e post
-
Categorie e Forum
- Categoria radice => categoria radice
- Sottocategoria => sottocategoria
- Forum radice => sottocategoria
- Sottoforum => sottocategoria
-
Utenti
- nome utente
- nome
- sito web
- stato dei privilegi
- localitĂ
- data di registrazione
- stato amministrativo
- stato di bannato
Il nostro piano è molto semplice, tutto ciò che serve:
-
Configurare l’ambiente di sviluppo (DEV ENV) locale.
-
Esportare il database di produzione.
-
Importare il database di produzione in Discourse.
-
Eseguire lo script di importazione PunBB.
Cominciamo ![]()
Configurare l’ambiente di sviluppo (DEV ENV) locale
Per prima cosa, segui una delle seguenti guide per installare la piattaforma Discourse. 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 eseguendo:
$ brew services list
Dovresti vedere qualcosa del genere:
mysql@5.7 started
Altrimenti, esegui il comando seguente e ricontrolla lo stato:
$ brew services start mysql@5.7
Ubuntu 18.04:
Esegui i seguenti comandi per installare il server MySQL:
$ 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 seguente comando:
$ sudo systemctl start mysql
Per Windows, puoi seguire la guida di installazione.
Ora, il nostro ambiente di sviluppo (DEV ENV) è pronto. Lo chiameremo: server Discourse.
Esportare il database di produzione
Esporta/effettua il backup del database di produzione (dal server di produzione PunBB) eseguendo:
$ mysqldump -u NOME_UTENTE -p NOME_DATABASE > punbb.sql
- Copia questo dump del database sul server Discourse.
Puoi usare
scporsyncper copiare il database.
Importare il database di produzione in Discourse
Sul server Discourse, crea un nuovo database vuoto. Per farlo, dobbiamo usare la riga di comando MySQL (CLI):
$ mysql -u root
Se il tuo utente del database ha una password, esegui il comando seguente e inserisci la password:
mysql -u root -p
mysql> CREATE DATABASE punbb;
Assicurati che il database sia stato creato con successo eseguendo:
mysql> SHOW DATABASES;
Dovresti vedere qualcosa del genere:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| punbb |
+--------------------+
Il nostro prossimo passo è importare il database di produzione in questo nuovo database vuoto.
$ mysql -u root punbb < punbb.sql
Eseguire lo script di importazione PunBB
Iniziamo installando le dipendenze dell’importatore. Dal server Discourse:
$ cd ~/discourse
$ echo "gem 'mysql2', require: false" >> Gemfile
$ bundle install
Successivamente, configura lo script per farlo funzionare correttamente. Apri script/import_scripts/punbb.rb con un editor a tua scelta e modifica. Fondamentalmente, tutto ciò che devi fare è fornire le informazioni del database MySQL:
PUNBB_DB = "NOME_DATABASE"
.
.
.
@client = Mysql2::Client.new(
host: "localhost",
username: "NOME_UTENTE_MYSQL",
password: "PASSWORD_MYSQL",
database: PUNBB_DB
)
Esegui l’importatore 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/punbb.rb
L’importatore si connetterà al database MySQL e migrerà il tuo forum PunBB nel database di Discourse.
Dopo che l’importatore ha terminato, avvia il server Discourse eseguendo:
$ bundle exec rails server
Successivamente, avvia il processore dei job in background per elaborare i dati migrati:
$ bundle exec sidekiq
Puoi monitorare lo stato di avanzamento di sidekiq a questo URL:
http://localhost:3000/sidekiq/queues.
Successivamente, prepara il tuo server di produzione Discourse seguendo questo tutorial.
Esegui un backup della piattaforma 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 ![]()