Sono appena riuscito a far funzionare la mia community XenForo esistente in Discourse, quindi ho pensato di condividere la mia esperienza qui per aiutare chiunque ci stia provando. Tieni presente che non so cosa sto facendo, quindi alcune delle mie deduzioni potrebbero essere errate. Sono riuscito a completare l’importazione in Discourse con una perdita di circa il 20% degli allegati. Non riesco davvero a spiegare il perché, ma il problema sembra interessare solo gli ultimi 2-3 anni di post sul mio forum, mentre tutto ciò che è precedente ha avuto un tasso di importazione di successo di circa il 95%. La mia unica ipotesi è che abbia a che fare con il passaggio da XF 1.x a XF 2.x.
Chiunque tenti questa operazione dovrebbe sapere che questo script necessita di molti aggiornamenti per funzionare con XF 2.x. In particolare, le righe 375-378 non hanno le tabelle di database corrette per importare allegati dalla Xenforo Media Gallery. Ho aggirato questo problema disconnettendo XFMG dal forum e disinstallandola, poiché stavo usando XFMG solo per rispecchiare gli allegati dal forum.
Se sei curioso, la riga 376 si riferisce alla tabella xengallery_media, che è ovviamente un riferimento a XFMG 1.x, poiché questa tabella è stata rinominata in xf_mg_media_item in XFMG 2.x. Il resto non riesco a farlo corrispondere e sospetto che sia necessario del codice aggiuntivo per far corrispondere gli ID degli allegati ai post.
Ho finito per commentare la riga 314: s = process_xf_attachments(:gallery, s)
In modo che lo script non generasse errori a causa della tabella SQL mancante.
Quindi, fatto ciò, ho seguito il post di @Jack51 in questo thread:
con le seguenti modifiche:
il passo sei necessita dell’aggiornamento della versione di mariadb. cambia mariadb-server-10.3 in mariadb-server-10.5
il passo sette dovrebbe essere service mariadb start invece di service mysql start.
Ho cambiato
frozen_string_literal: true
in
frozen_string_literal: false
Poiché ho ricevuto lo stesso errore che qualcun altro ha menzionato in questo thread.
Sembra che ci sia stata molta confusione in questo thread su dove posizionare gli allegati in modo che lo script li vedesse, e devo ammettere che anch’io ho avuto qualche difficoltà. Per chi è completamente nuovo a docker (come me), sarebbe estremamente utile far notare che mentre i docker sono essenzialmente una macchina virtuale in esecuzione sul tuo server (quindi hai a che fare con due diversi sistemi operativi/file system), esiste uno spazio condiviso per il trasferimento di file:
/var/discourse/shared/standalone/tmp
questa directory si trova sulla tua macchina host, e i file inseriti lì appariranno in:
/shared/tmp
una volta entrato nel container docker. Quindi, supponendo che tu mantenga la stessa struttura di file/cartelle da xenforo, copieresti le cartelle:
internal_data/attachments
in
/var/discourse/shared/standalone/tmp
sulla tua macchina host, e quella cartella apparirebbe in /shared/tmp dopo essere entrato nel tuo container docker.
Successivamente, modificando lo script xenforo.rb, cambia:
ATTACHMENT_DIR = '/tmp/attachments'
in
ATTACHMENT_DIR = '/shared/tmp/internal_data/attachments'
e avrai i tuoi allegati nella posizione corretta. Vale la pena notare che xenforo ha anche una cartella data/attachments, ma è piena di file .jpg invece dei file .data che stai cercando. Ho visto qualcuno commettere questo errore in precedenza in questo thread, quindi ho pensato che valesse la pena sottolinearlo.
Inoltre, ho ricevuto un errore di permessi dallo script, quindi potresti dover usare chmod sulla directory:
sudo chmod a+rw -R /shared/tmp/internal_data/
Direi che il più grande indizio che lo script non sta rilevando i tuoi allegati è che sarà stranamente silenzioso mentre invece dovrebbe probabilmente generare qualche errore occasionale:
Quindi, se l’importazione va avanti per diverse ore senza un singolo errore elencato, probabilmente non sta rilevando gli allegati.
Questo è tutto quello che ho. Non fraintendermi, sono contento che questo script esista, un tasso di successo dell’80% è meglio di niente (ho avuto un tasso di successo simile passando da vBulletin a Xenforo nel 2009), e sono entusiasta di iniziare a lavorare con la piattaforma Discourse. Spero che questo post aiuti alcune persone e forse un giorno qualcuno con competenze migliori delle mie potrà aggiornare questo script per farlo funzionare un po’ meglio.
