Migrare un forum phpBB3 a Discourse

Posso almeno dire che non si verifica solo nei casi in cui post più vecchi linkano a post più recenti.

Ho un esempio in cui ho individuato per la prima volta il problema.

ID del post originale: 842948, che linka alla pagina 22 di un thread già esistente; almeno il post iniziale (&start=220) ha un ID inferiore a quello del post che effettua il link (842880).

Dopo l’importazione, questo post originale (pubblicato solo pochi giorni prima della creazione del dump) punta a un thread vecchio di 7 anni, in cui il primo post ha un ID originale di 1353.

Non riesco a trovare alcun indizio sul motivo per cui ciò accada, né alcuna somiglianza numerica di alcun tipo… Il link originale era semplicemente un URL inserito nel testo, reso cliccabile automaticamente da phpBB. Questi link in generale non causano problemi: funzionano correttamente in diversi altri contesti.

In generale, non mi aspetto che l’importazione funzioni perfettamente fin da subito. Sono davvero soddisfatto di come è andata finora, ma presumo che questo problema possa essere uno dei più difficili da risolvere, soprattutto perché non ho ancora idea di come configurare un ambiente di sviluppo/debug con Discourse. Dovrò probabilmente occuparmene a breve.

3 Mi Piace

Ciao,
Per quanto ricordo, l’importatore phpbb riempiva di default il nome completo dell’utente Discourse deducendolo dall’indirizzo email dell’utente. Ho ragione e succede ancora così? Non riesco a trovare nulla a riguardo nei file dell’importatore…

È qualcosa che non vorrei accadesse nel prossimo forum che potrei importare.

Inoltre, un’altra domanda.

Nel forum phpbb attuale, ci sono campi utente personalizzati (come gli URL di Facebook o Instagram degli utenti). Vorrei importarli nei campi personalizzati di Discourse. Immagino che dovrò prima installare e configurare Discourse aggiungendo questi campi utente personalizzati, e poi importare i dati phpbb tramite il mio script di importazione personalizzato?

1 Mi Piace

Questo non accade più.

Sembra un buon piano.

6 Mi Piace

Esiste un modo affidabile per stimare il volume mensile di email che Discourse invierà agli utenti dopo una migrazione da phpBB? Nuove registrazioni, menzioni e risposte, riassunti settimanali e così via… phpBB invia pochissime email di default e penso che dovremo cambiare il fornitore di email attuale.
Al momento non ho molte statistiche dal phpBB reale. Esiste dal 2013, con 200.000 messaggi e 5.500 membri. Nuovi membri si registrano ogni giorno.

1 Mi Piace

Quanti post al giorno?

1 Mi Piace

Non lo so ancora. Al momento ho solo le statistiche pubbliche. Forse 20.

1 Mi Piace

Con soli 20 post al giorno, penso che ti troveresti a gestire al massimo 3000 email al mese, ben all’interno del piano gratuito di Mailgun.

Tuttavia, visto che stai migrando con molti utenti, ti consiglio di disattivare le email di riepilogo per tutti coloro che non hanno visitato il tuo forum nell’ultimo mese o due (possono sempre riattivarle autonomamente se lo desiderano). Puoi farlo con una query nella console di Rails, ma è passato un anno da quando l’ho fatto per il mio, quindi non ricordo il codice esatto, scusa.

In realtà, questa dovrebbe essere una funzionalità che lo script di importazione potrebbe gestire per te, a mio avviso, idealmente con un’impostazione per il tempo trascorso dall’ultima visita per abilitare le email di riepilogo.

4 Mi Piace

Non sono d’accordo. Non è qualcosa che lo script di importazione dovrebbe fare, ma esiste un’impostazione del sito per questo: suppress digest email after days

4 Mi Piace

Infatti :slight_smile: Dopo la mia prima importazione phpBB sul mio forum attuale, ho dovuto ridurre il valore predefinito; il mio provider di posta ha bloccato automaticamente l’indirizzo utilizzato a causa di tutte le e-mail di riepilogo inviate. È stato segnalato come spam.

1 Mi Piace

Non è esattamente la stessa cosa. A mio parere, c’è una differenza tra inviare email di riepilogo a qualcuno per X mesi dall’ultimo accesso, poiché si è iscritto volontariamente a tale servizio – il fatto che non visiti il forum non significa che non legga le email di riepilogo – e inviare email di riepilogo a un utente che non si è mai iscritto volontariamente, semplicemente perché si è registrato nel forum precedente, il che potrebbe non essere nemmeno legale in alcune giurisdizioni! Potresti semplicemente disattivare le email di riepilogo per tutti gli utenti migrati, e loro potranno riattivarle autonomamente, oppure puoi fare come ho fatto io: disattivarle per tutti, tranne per coloro che hanno visitato il forum nell’ultimo mese e che quindi avranno visto l’annuncio “stiamo per migrare il forum presto”. Penso che sia un compromesso equo.

È anche una scelta pratica: il nostro forum phpBB aveva accumulato migliaia di account spam nell’ultimo anno, e inviare loro email di riepilogo quattro volte al mese avrebbe esaurito la nostra allocazione gratuita di Mailgun, per poi iniziare a generare costi elevati. Ridurre l’opzione “pulisci gli utenti inattivi dopo X giorni” ha infine eliminato quegli account.

5 Mi Piace

Non sono sicuro se questo argomento appartenga qui o in una sezione separata. Ma riguarda la migrazione da phpBB 3, quindi eccomi qui.

Ho completato con successo la migrazione a Discourse con un unico database. Tuttavia, ho tre comunità diverse e separate (tre lingue diverse, tre installazioni separate di phpBB) che idealmente vorrei fondere in un unico grande e felice forum Discourse.

La mia domanda è: come posso procedere? Cosa devo modificare nello script di importazione, nel database phpBB 3 o altrove?
Ci sono alcuni utenti che hanno account su entrambi i forum (alcuni forse su tutti e tre), ma non c’è single sign-on, quindi hanno un account diverso su ogni forum con lo stesso nome utente. Si tratta di installazioni diverse e database diversi.

Sarebbe fantastico se fosse fattibile!

Grazie in anticipo per qualsiasi aiuto!

1 Mi Piace

Non funzionerà immediatamente, perché lo script di importazione memorizza gli ID originali nel database di Discourse e non importerà dati da un forum aggiuntivo se rileva un record con lo stesso ID. Tuttavia, posso pensare a due modi per risolvere il problema:

  1. Difficile: Devi modificare lo script di importazione in diversi punti e aggiungere un prefisso per ciascun forum ai campi personalizzati import_id memorizzati per post, argomenti, categorie e utenti.

  2. Facile, ma perderai la possibilità di importazioni incrementali: Elimina i campi personalizzati dopo ogni importazione.

    TopicCustomField.where(name: 'import_id').delete_all
    PostCustomField.where(name: 'import_id').delete_all
    CategoryCustomField.where(name: 'import_id').delete_all
    UserCustomField.where(name: 'import_id').delete_all
    

La soluzione 2 non è stata testata, ma in teoria dovrebbe funzionare. Crea un backup prima di provarla.

7 Mi Piace

Dopo i primi test prima del Capodanno, riprendiamo ora le attività con il nostro progetto di migrazione. Uno dei problemi più grandi rimane la riscrittura fallita dei collegamenti e sto riflettendo su come gestirlo al meglio,

@gerhard la mia conoscenza della programmazione è molto basilare e non ho alcuna conoscenza di Rails in generale né della struttura di Discourse in dettaglio - quindi ti chiedo gentilmente di pazientare con la mia domanda: esisterebbe la possibilità di gestire il caso in cui l’importatore non trovi un post importato con l’ID indicato nel link e, invece di sostituirlo con un link errato, aggiunga del testo che informi l’utente o l’amministratore e renda questi link problematici individuabili dopo l’importazione?

La mia principale preoccupazione riguardo al funzionamento attuale è che quei link sembrano semplicemente essere stati sostituiti con successo e non esiste un modo per individuarli e correggerli manualmente dopo l’importazione.

Grazie per qualsiasi aiuto tu possa darmi - è davvero apprezzato.

1 Mi Piace

Un modo per farlo è riscrivere lo script in modo che non sostituisca quei link fino a dopo che tutti i post sono stati importati. Se hai bisogno di aiuto e hai un budget, puoi contattarmi o pubblicare in Marketplace.

4 Mi Piace

Purtroppo questo progetto ha un budget limitato e immagino che la questione non sia abbastanza importante da giustificare una spesa per questo, ma è sicuramente utile sapere che saresti disponibile per farlo.

Un’altra domanda: ho notato che i tag BBCode vengono gestiti in modo diverso durante l’importazione. Ad esempio, [size] viene lasciato come testo, mentre [color] sembra essere rimosso completamente. Volevo riutilizzare i colori e ho scoperto che esiste un plugin Discourse per questo, ma poi ho notato che sembra essere rimosso durante l’importazione. Il primo post afferma che i BBCode possono essere importati, ma non ho trovato alcuna impostazione che controlli quali possono essere importati e quali no.

Se fosse possibile, preferirei rimuovere i tag [size] e lasciare invece i tag [color]. C’è qualcosa che mi sfugge su come viene gestita questa operazione e su come potrebbe eventualmente essere modificata?

1 Mi Piace

Ho appena scoperto che gli argomenti eliminati (pruned) sul mio forum phpbb, che pensavo fossero spariti, sono stati in qualche modo trasferiti su Discourse.

Com’è possibile?

1 Mi Piace

Sto cercando di fare questo, ma mi sono perso nelle istruzioni: a quale file delle impostazioni ti riferisci? E quando devo farlo? Prima o dopo l’importazione?
Grazie in anticipo!

edit: quindi penso tu intenda i file delle impostazioni delle emoji nel Pannello di Amministrazione (Admin CP)? Esiste un modo per farlo importando un file di testo o qualcosa di simile? Ho circa 100 emoticon personalizzate e preferirei in qualche modo copiare quella mappatura in Discourse; è possibile? (Se potessi in qualche modo copiare il file smily.pak di phpBB nelle impostazioni di Discourse?)

1 Mi Piace

Hai visto il file delle impostazioni dell’importatore, vero? :wink:

3 Mi Piace

Immagino che phpBB gestisca gli argomenti eliminati in modo diverso rispetto agli argomenti cancellati normalmente. In tal caso, al momento non è supportato. Dovrai scoprire come phpBB segnala gli argomenti eliminati come cancellati e modificare lo script di importazione.

3 Mi Piace

Siiiiiiiiì, certo! È passato troppo tempo da quando ho fatto la prima conversione. Me ne ero completamente dimenticato, grazie!

Per quanto riguarda gli argomenti eliminati, sì, pensavo fosse qualcosa del genere. Per il mio forum non è un grosso problema, ma è stato sorprendente e forse è un avvertimento per gli altri che questo potrebbe accadere.

1 Mi Piace