Re: Migrare un forum phpBB3 a Discourse

Ciao,

phpBB3.3.3 è supportato o è strettamente 3.3.0? Quando si esegue il passaggio 1.5:

/var/discourse/launcher enter import

da Migrate a phpBB3 forum to Discourse - documentation / sysadmin - Discourse Meta
sto ricevendo (ho già provato due volte) la risposta:

x86_64 arch detected.
Error response from daemon: No such container: import

Se uso
/var/discourse/launcher enter import.yml

la risposta è:

x86_64 arch detected.
ERROR: containers/import.yml.yml does not exist or is not readable.
Available configs ( app, import )

Ci sono possibilità che questo possa funzionare?

Grazie

Ciao, benvenuto! :wave:

Presumo tu abbia seguito la guida dall’inizio; il file /var/discourse/containers/import.yml è effettivamente presente?

Sembra che il file di configurazione sia stato eliminato. :thinking:

1 Mi Piace

Sì, è come nel messaggio sopra, sia app.yml che import.yml sono presenti nella directory “containers”.

Se ho capito bene, non hai avuto problemi a seguire i passaggi precedenti, creando/modificando import.yml accanto a app.yml, ricreando il container import e ora non riesci nemmeno ad accedervi. È corretto? È sicuramente strano!

Cosa restituisce questo comando? ls -l /var/discourse/containers

È ancora lo stesso: app.yml e import.yml (più un file “bak” di app.yml).

Potrebbero esserci dei “problemi” poiché ho cercato di installarlo su Lightsail 1GB (che inizialmente è 940 e dopo l’aggiornamento di Ubuntu diventa “921MB”). Ho usato l’installazione ufficiale e ciò che è stato installato era qualcosa come 3.3.* beta-qualcosa (mentre Wiki mostra 3.2 come versione stabile più recente). L’installazione richiede 1h15min-1h20min con 4GB di swap. il “launcher rebuild import” circa 2 ore.
Qualcosa potrebbe essere terminato in modo errato a causa della scarsa memoria?

A proposito, i file di backup dall’installazione da 2GB saranno leggibili nell’installazione da 1GB?

Ha avuto successo? Dopo una ricostruzione, il container dovrebbe essere avviato.
Non è possibile accedere al container se non è avviato (./launcher start import)

Probabilmente è così. Ci sono diversi argomenti relativi a memoria/swap insufficiente e fallimento della ricostruzione qui: di solito non c’è altra scelta che aumentare RAM/swap.

Non sono un esperto, ma spero che qualcuno possa darti maggiori informazioni.

1 Mi Piace

Apparentemente, la RAM è un problema. Per Lightsail 2GB/2GB, l’installazione pulita è circa 3,5-4 volte più veloce e la ricostruzione del container di importazione è stata circa 10 volte più veloce (o anche di più).
Comunque, temo che lo script di importazione potrebbe non funzionare per phpBB 3.3.3. Ad ogni modo, ho provato due volte con lo stesso risultato: è stata importata solo una parola dal nome di una categoria (su circa 10 categorie) come una "categoria" vuota. Il dump testuale di MySQL è piuttosto piccolo, 2,66 MB. Tutti i prefissi delle tabelle sono come richiesto. Nessuna immagine, nessun smiley, ecc.
Tutto sommato, nessun forum, nessuna categoria di forum o post, ma tutti gli utenti (alcune centinaia) sono stati importati correttamente insieme alle loro statistiche.

Sembra che phpBB 3.3.3 sia stato l’aggiornamento che ha cambiato qualcosa riguardo alla versione MySQL utilizzata, ma questo è un file di dump, quindi non dovrebbe avere importanza dopotutto.
Qualche idea su cos’altro si possa controllare?

Consiglierei almeno 4 GB di RAM.

Ci sono stati degli errori? Sembra che lo script si sia interrotto dopo aver ottenuto una categoria?

1 Mi Piace

Intendi 4 GB per aprire/leggere/analizzare quel file di testo da 2,6 MB? Sei lo sviluppatore di Discourse? Un eseguibile binario per leggere quel dump (estrarre tutti i dati utilizzati da Discourse) e salvarlo in qualsiasi altra cosa dovrebbe essere, secondo me, intorno ai 200 KB con, diciamo, un buffer di 100 KB (senza preoccuparsi dell’inclusione dell’intero MariaDB per questa semplice azione).

Penso che non si tratti di RAM. La procedura è stata veloce e ha mostrato il progresso dell’importazione per le tabelle importate. Non si è “interrotta”. La tabella degli utenti si trova alla fine del dump, dopo gli argomenti, ecc.

Volevo rifare questo, sperimentando copiando/incollando quella tabella degli utenti in cima ed eseguendo gli stessi passaggi dal manuale/pagina sopra (anche con un dump creato da phpMyAdmin invece di phpBB), ma ora Discourse si rifiuta di avviare la procedura cercando di connettersi in remoto sebbene non siano stati aggiunti dati di connessione.

Ho ricostruito il container di importazione, ma forse qualcosa deve essere eliminato prima?

Mi mantengo con il supporto di Discourse e ho effettuato più migrazioni di quante ne possa contare, ma penso che un centinaio o più. 2 GB probabilmente funzioneranno, specialmente se hai solo poche migliaia di argomenti e utenti, ma dato che ti serve per un breve periodo di tempo, più RAM non è costosa e non può fare male. Concordo sul fatto che probabilmente non è questo il problema.

Quando lo script è stato eseguito, ha contato attraverso le categorie, gli utenti, gli argomenti e i post?

Lo script salterà i dati importati e creerà dati di campi personalizzati per saltarli in futuro, quindi per eseguirlo di nuovo, devi cancellare il database di Discourse. Dato che dici che non ha importato nulla, non è chiaro se sia necessario. Sembrerebbe che o lo abbia importato e non riesci a trovarlo per qualche motivo, o sia fallito perché non ha trovato i dati e devi modificare lo script in qualche modo; in nessuno di questi casi dovresti aver bisogno di cancellare il database.

Dato che dici che non ha importato nulla

Non esattamente:
" tutti (alcune centinaia) gli utenti sono stati importati correttamente insieme alle loro statistiche"

Ho provato a ricreare il container di nuovo. Le stesse impostazioni. Non ho cambiato nulla e dopo il passaggio:
import_phpbb3.sh # all’interno del container Docker
lo script ora visualizza:
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mysql2-0.5.6/lib/mysql2/client.rb:97:in `connect’: Unknown database ‘phpbb’ (Mysql2::Error)

Forse ci sono ancora alcuni file temporanei precedentemente utilizzati da eliminare?

Alla fine ho usato il dump da phpMyAdmin. Esiste un esempio (o specifiche più dettagliate) su come creare le sezioni di mapping nel file settings.yml (di importazione)?
La mia tabella php_forums è simile alla seguente:

forum_id, MEDIUMINT(8) ...	parent_id, MEDIUMINT(8) ...
3	0
8	3
7	3
9	3
10	3
11	0
12	11
13	11
14	11
15	11
17	3

Sembra che, indipendentemente dagli ID che utilizzo e anche se specifico la sezione “new_categories: ”, il messaggio generato dal container di importazione sia corretto:
creazione nuove categorie
11 / 11 (100,0%) [2803 elementi/min] n]
creazione categorie
11 / 11 (100,0%) [2704 elementi/min]

ma ciò che viene creato sono due categorie principali (che erano “forum” in phpBB con parent_id 0) e una sottocategoria vuota in ciascuna di esse. La procedura importa tutti i post, ma sono tutti “orfani”.

Sembra che qualcosa sia cambiato per la tua versione di phpbb3.

In realtà, ho fatto un passo avanti per correggere il mio errore: ho semplicemente inserito commenti nel file settings.yml usando lo stile C/C++, alla fine delle righe. Questo apparentemente ha impedito che i sottofori venissero “elaborati” (anche se non sono stati visualizzati errori).

Ho aggiunto le categorie e le sottocategorie come “nuove” e ho mappato gli ID precedenti.
Ci sono ancora tutti i post non collegati a nessuna categoria. Tali argomenti sono memorizzati in una tabella Postgres? Come possono essere eliminati?

Ho aggiunto alcune correzioni a phpbb_mysql.sql almeno per consentire allo script di creare tutte le categorie originali, ma non è sufficiente.
Durante l’elaborazione di argomenti/post c’è solo un lungo elenco del tipo:

Il post padre [some id] non esiste. Salto [some id]

e, naturalmente, non ci sono post importati.
Mi chiedo se qualcuno possa confermare che gli script predefiniti non funzionano con le tabelle phpBB 3.3.3?

Alla fine sono stato in grado di utilizzare il file di dump phpBB3.3.3 senza definire le categorie come nuove e senza tutta la mappatura nel file settings.yml.

Con il file di dump originale phpBB_mysql.sql, lo script di migrazione si interrompe al passaggio in cui vengono caricate le categorie e visualizza un errore riguardo a “un corpo di categoria vuoto”.
Si verifica se il campo “forum_desc” nella tabella “phpbb_forums” per le categorie principali del forum (che non hanno categorie genitore).
Dopo aver importato solo la prima categoria parzialmente, il resto apparentemente si scombina.
Utilizzare un’installazione pulita e inserire del testo nei campi della tabella sopra menzionati sembra risolvere questo problema.