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.
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.
J’ai la même question, et je suis un peu confus au sujet de la réponse. Je cherche également à faire une importation importante de FluxBB.
Je vois qu’il existe une fonctionnalité Discourse appelée « Permalinks » ( How to make a redirect URL in a Discourse install? - #4 by cpradio ), donc nous disons qu’en créant ces éléments, Discourse pourrait prendre une URL de style FluxBB telle que « /viewtopic.php?id=((ancien id de sujet)) » et rediriger vers « /t/((nouveau slug de sujet))/((nouveau id de sujet)) ». Peut-être de même pour les messages individuels d’un sujet ? De même pour les URL de profils d’utilisateurs. (Nous aurons donc besoin de nombreux permaliens). Je vois la table de base de données pour les Permalinks.
Cela semble être une solution intéressante, mais l’importateur FluxBB ne crée aucun permalien. Je ne vois aucun code pour cela. En fait, je ne vois aucun code dans aucun des scripts d’importation pour faire cela (aucune mention du modèle ActiveRecord « Permalink »).
Je serais heureux de travailler à la modification de l’importateur FluxBB pour faire cela, mais y a-t-il un exemple dans l’un des autres importateurs ?
La seule chose que je vois dans le code dans ce sens est l’initialisation de « LookupContainer » et le stockage de tous les anciens ID et de leurs ID correspondants. Cela peut-il être utilisé pour créer de nombreux objets Permalink ?
Consultez l’importateur vbulletin (mais aussi answerhub, vanilla, mylittleforum, bbpress, drupal pour quelques autres - peut-être avez-vous utilisé la recherche sensible à la casse ou quelque chose comme ça), qui le fait dans la fonction import_topics (ignorez la fonction de fichier permalien). Vous voudrez du code qui ajoute le permalien et une permalink_normalization qui mappe l’URL fluxbb dans le permalien que vous avez créé.
Gah ! Vous avez raison. La recherche de mon IDE me jouait des tours. En fait, il y a plein d’exemples d’objets « Permalink » en cours de création. Je vais peut-être donc envisager d’ajouter cela à l’importation FluxBB.
Je suis curieux de savoir comment s’est passée votre grosse importation @alldritt. Eh bien, il semble que macscripter.net utilise toujours FluxBB, donc pas très bien ? Si vous avez remarqué que l’importateur FluxBB ne convertit pas très bien le bbcode, j’ai travaillé sur diverses corrections à ce sujet : Pull request en cours.
Il y a un chevauchement intéressant (et gênant) entre ces discussions, car FluxBB prend en charge le bbcode de la forme [post=123] pour lier à un autre message par son id (en référençant les anciens ids de message dans le système FluxBB source). Il sera plus facile de gérer cela si nous avons une solution pour rediriger ces ids.
Non. Les permaliens ne fonctionnent que pour les liens entrants, pas pour les liens internes. Vous devrez écrire quelque chose pour réécrire ces liens internes sous forme de citations Discourse. Il existe également des exemples à ce sujet.
J’ai tenté la conversion à plusieurs reprises et j’ai abandonné. Avec le temps, en passant à un Mac M1, j’ai perdu mon environnement de test Discourse et je n’ai jamais pris le temps de le recréer. J’espère revenir à ce projet dès que j’aurai un peu de temps libre. La gestion de la redirection des liens existants était un point sur lequel j’avais du mal. Je n’avais pas encore vérifié si tout le BBCode était correctement traduit. J’ai plus de 130 000 messages à convertir, ce qui est décourageant à vérifier.
J’espère que cela vous sera utile. Hier, j’ai travaillé à l’ajout de la fonctionnalité create_permlinks à l’importateur FluxBB.
Pour le moment, cela se trouve dans ma PR WIP. Voir le commit “Add Permalink creation logic to FluxBB importer”à la fin de cette liste. J’espère que tout cela sera fusionné à un moment donné, éventuellement dans un ordre différent (j’attends actuellement que quelqu’un examine cette PR de base comme point de départ).
Donc, cela crée des redirections pour quatre types d’URL FluxBB différents.
profile.php?id=<user id>
viewtopic.php?pid=<post id>
viewtopic.php?id=<topic id>
viewforum.php?id=<forum id>
Je pense que ces quatre couvrent tout ce que les gens voudront conserver comme liens fonctionnels. Qu’en pensez-vous ?
Pour revenir au sujet des liens internes spéciaux de FluxBB
Je n’allais pas essayer de les conserver comme liens internes dans le nouveau discourse. Solution paresseuse : ils pointeront vers les anciennes URL du forum FluxBB (en tant qu’URL complètes, donc liens externes) qui, grâce à ces permaliens, redirigeront ensuite l’utilisateur vers le bon endroit dans le nouveau discourse.
Je pense que votre solution paresseuse pourrait fonctionner. Vous pouvez trouver des exemples de réécriture des liens internes si vous le souhaitez, mais la paresse peut être une bonne chose.