Riassumendo il percorso (molto più lungo di questo post)
:
NOTA: Ho utilizzato una distribuzione Kubuntu in esecuzione in una macchina virtuale per il processo, quindi tieni presente che potrebbe non essere la stessa su sistemi operativi o distribuzioni diverse.
0. Installazione dell’ambiente di sviluppo Discourse
Seguendo questo post ed eseguendo questo script collegato nel post utilizzando
`bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)`
come descritto lì, più il clonaggio delle sorgenti
git clone https://github.com/discourse/discourse.git ~/discourse
1. Preparazione del database MySQL
Ottieni un dump del database mybb originale come descritto in cima alla discussione:
$ mysqldump -u NOME_UTENTE -p NOME_DATABASE > mybb_dump.sql
e copialo/spostalo nel nuovo ambiente di sviluppo impostato.
Installa il server MySQL
$ sudo apt-get install mysql-server
L’autenticazione per mysql è cambiata nelle versioni più recenti. Devi essere root sull’host se vuoi essere root su mysql in questi giorni, quindi
$ sudo mysql
invece di
$mysql -u root
Naturalmente devi prima essere un “sudoer” (amministratore)
$ sudo mysql
mysql> CREATE DATABASE mybb;
mysql> SHOW DATABASES;
mysql> CREATE USER 'nonrootuser'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON mybb.* TO 'nonrootuser'@'localhost';
mysql> quit
$ mysql -unonrootuser -ppassword mybb < mybb_dump.sql
<qui ricevi un avviso sul fatto che fornire la password sulla riga di comando non è una cosa intelligente da fare>
$ sudo mysql
mysql> USE mybb;
mysql> SHOW TABLES;
<qui verifica se tutte le tabelle sono presenti - vedi il post originale>
mysql> quit
2. Installazione delle gem Ruby
Controllando il Gemfile nelle sorgenti correnti si scopre che
$ echo "gem 'mysql2', require: false" >> Gemfile
non è realmente necessario. È sufficiente impostare la variabile d’ambiente IMPORT su 1.
Ciò che è necessario, tuttavia, sono i file di sviluppo per i client MySQL, che è ciò a cui si riferisce la prima riga seguente
$ sudo apt-get install libmysqlclient-dev
$ cd ~/discourse
$ IMPORT=1 bundle install
2. Preparazione del database Discourse (PostgreSQL)
$ bundle exec rails db:drop
$ bundle exec rails db:create
$ bundle exec rails db:migrate
$ export DB_PW="password"
$ export DB_USER="nonrootuser"
3. Esecuzione dell’importazione effettiva
La riga successiva corregge una chiamata a metodo a lungo deprecata e attualmente già rimossa nello script di importazione mybb.rb, che è ancora presente al momento della scrittura e non cambierà nulla se questo è già stato corretto
$ sed -i.original 's/File.exists?/File.exist?/' script/import_scripts/mybb.rb
Ora controlla se Redis è ancora in esecuzione. Lo script di installazione Rails lo avvia ma non lo abilita come servizio permanente, quindi non sopravvive a riavvii, crash, ecc.
$ ps -aux |grep redis
silverdr 2808 0.3 0.3 89972 14512 ? Ssl 05:25 2:04 redis-server *:6379
[…]
Se non vedi nulla di simile alla riga sopra, esegui
$ redis-server --daemonize yes
che è esattamente lo stesso comando che lo script di installazione Rails ha utilizzato la prima volta durante l’installazione.
Infine
e
$ IMPORT=1 bundle exec ruby script/import_scripts/mybb.rb
Se a questo punto lo script non si è fermato con YAE (Yet Another Error), allora è il momento di stappare quella bottiglia 
Rimangono alcune cose
- OK - quindi l’unica parte mancante ovvia sono le password degli utenti. Apparentemente, anche se entrambe le applicazioni memorizzano hash e salt, a giudicare dalla lunghezza di quegli hash, “mybb” utilizza un algoritmo di hashing più vecchio. Pertanto, questo è comprensibile e non un blocco. Tutti dovrebbero essere in grado di reimpostare la propria password la prima volta.
- Alcune cose di bbcode non vengono convertite. Ho, ad esempio, problemi con i blocchi di codice, che hanno alcuni tag intorno che impostano il font monospaziato Courier e altro ancora. Non ho più la forza di provare ad automatizzare ulteriormente questa cosa. Se riesci a fare qualcosa al riguardo, faccelo sapere qui!
