Migrazione da FluxBB preservando i link in entrata

Hello everyone,

I’m planning a migration of an existing community (macscripter.net - Mac OS Automation discussions) hosted with FluxBB to Discourse. This article looks promising in terms of migrating the data. Its going to be a big job as I have over 30,000 users, and 120K posts but it seems doable.

However, I want to preserve all the incoming links. macscripter.net is a significant reference for the Apple automation community. We’ve got almost 20 years of posts with a lot of references to the site appearing on other sites and in mailing list archives which I don’t want to break.

I’m looking for a way to translating incoming FluxBB post links to corresponding Discourse posts? I don’t see any way to accomplish this with stock Discourse so I’m presuming I’ll need to create some sort of plugin that responds to FluxBB’s /viewtopic.php?id=##### links and redirects to the appropriate Discourse link. If anyone else has experience solving this kind of problem, I would love to hear how you approached it.

I appreciate any suggestions.

Cheers
-Mark

1 Mi Piace

Most import scripts create permalinks that handle the redirects. I don’t know offhand if they one does. If not, you can look at one of the others for example code.

2 Mi Piace

Ho la stessa domanda e sono un po’ confuso riguardo alla risposta. Sto anche cercando di fare un’importazione di FluxBB di dimensioni considerevoli.

Vedo che c’è una funzionalità di Discourse chiamata “Permalinks” (How to make a redirect URL in a Discourse install? - #4 by cpradio), quindi stiamo dicendo che creando queste cose, Discourse potrebbe prendere un URL in stile FluxBB come “/viewtopic.php?id=((vecchio id argomento))” e reindirizzare a “/t/((nuovo slug argomento))/((nuovo id argomento))”. Forse allo stesso modo per i singoli post in un argomento? Allo stesso modo per gli URL dei profili utente. (Quindi avremo bisogno di molti permalink). Vedo la tabella del database per i Permalink.

Sembra una soluzione interessante, ma l’importatore FluxBB non sta creando alcun permalink. Non riesco a vedere alcun codice per questo. Infatti, non riesco a vedere alcun codice in nessuno degli script di importazione che faccia questo (Nessuna menzione del modello ActiveRecord “Permalink”).

Sarei felice di lavorare alla modifica dell’importatore FluxBB per fare questo, ma c’è un esempio in uno degli altri importatori?

L’unica cosa che vedo nel codice in questa direzione è l’inizializzazione di “LookupContainer” e la memorizzazione di tutti i vecchi ID e i loro corrispondenti nuovi ID. Questo può essere utilizzato per creare molti oggetti Permalink?

Giusto.

Dai un’occhiata all’importatore vbulletin (ma anche answerhub, vanilla, mylittleforum, bbpress, drupal per altri–forse hai cercato con sensibilità alle maiuscole o qualcosa del genere), che lo fa nella funzione import_topics (ignora la funzione del file permalink). Ti servirà un codice che aggiunga il permalink e una permalink_normalization che mappi l’URL fluxbb nel permalink che hai creato.

Gah! Hai ragione. La ricerca del mio IDE mi stava ingannando. Infatti ci sono un sacco di esempi di oggetti “Permalink” che vengono creati. Quindi forse darò un’occhiata ad aggiungerlo all’importazione di FluxBB.

Sono curioso di sapere come è andata la tua grande importazione @alldritt. Beh, sembra che macscripter.net sia ancora su FluxBB, quindi non molto bene? :slight_smile: Se hai notato che l’importatore di fluxbb non converte molto bene il bbcode, ho lavorato a varie correzioni per questo: Pull request in corso.

C’è una sovrapposizione interessante (imbarazzante) tra queste discussioni, perché FluxBB supporta il bbcode del tipo [post=123] per collegarsi a un altro post tramite id (facendo riferimento ai vecchi id dei post nel sistema FluxBB di origine). Sarà più facile gestirlo se avremo una soluzione per reindirizzare questi id.

1 Mi Piace

Non lo farà. I permalink funzionano solo per i link in entrata, non per quelli interni. Dovrai scrivere qualcosa per riscrivere quei link interni come citazioni di Discourse. Ci sono anche esempi di questo.

Grazie per aver ripreso questo argomento!

Ho fatto un paio di tentativi di conversione e ho rinunciato. Col tempo, passando a un Mac M1, ho perso il mio ambiente di test Discourse e non ho mai avuto il tempo di ricrearlo. Spero di tornare a questo progetto non appena avrò un po’ di tempo libero. Gestire la reindirizzamento dei link esistenti è stata una parte con cui ho faticato. Non ero ancora arrivato a verificare che tutto il BBCode fosse stato tradotto correttamente. Ho oltre 130.000 post da convertire, il che è scoraggiante da verificare.

Spero che questo ti sarà utile allora. Ieri stavo lavorando per aggiungere la funzionalità create_permlinks all’importatore di FluxBB.

Al momento questo si trova nel mio PR WIP. Vedi il commit “Add Permalink creation logic to FluxBB importer” alla fine di questo elenco. Spero di far confluire tutto questo a un certo punto, possibilmente in un ordine diverso (attualmente sto aspettando che qualcuno esamini questo PR di base come punto di partenza)

Quindi questo crea reindirizzamenti per quattro diversi tipi di URL di FluxBB.

  • profile.php?id=<user id>
  • viewtopic.php?pid=<post id>
  • viewtopic.php?id=<topic id>
  • viewforum.php?id=<forum id>

Penso che questi quattro coprano tutto ciò che le persone vorranno preservare con link funzionanti. Cosa ne pensi?


Tornando all’argomento dei link interni speciali di FluxBB

Non avrei cercato di mantenerli come link interni nel nuovo discourse. Soluzione pigra: si collegheranno ai vecchi URL del forum FluxBB (come URL completi, quindi link esterni) che, grazie a questi Permalink, reindirizzeranno l’utente al posto giusto nel nuovo discourse.

Penso che la tua soluzione pigra potrebbe funzionare. Puoi trovare esempi di riscrittura dei link interni se vuoi, ma pigro può essere un bene.

1 Mi Piace