Importation en masse de redirections vers de nouveaux sujets Discourse

Bonjour à tous,

J’ai récemment réussi à migrer mon site d’une ancienne plateforme personnalisée vers Discourse avec succès. Cependant, je suis maintenant confronté au défi d’importer les permaliens/redirections vers les nouveaux sujets Discourse. J’ai les identifiants de tous les messages créés dans Discourse et j’explore les options pour importer ces redirections via l’API ou la ligne de commande, car l’importation manuelle est irréalisable en raison de la grande quantité.

Quelqu’un pourrait-il me conseiller sur les méthodes ou les outils disponibles pour importer efficacement les liens de redirection vers les nouveaux sujets Discourse ? Vos idées et suggestions seraient grandement appréciées.

Merci d’avance !

Si votre migration était basée sur un script d’importation, les sujets (et probablement les publications) incluent un champ personnalisé import_id. Vous pouvez ensuite utiliser ces champs personnalisés, les Permaliens et SiteSetting.permalink_normalizations pour créer des redirections.

Vous pouvez tester dans Rails avec quelque chose comme

tcfs=TopicCustomField.where(name: 'import_id')
pcfs=PostCustomField.where(name: 'import_id')

Si vous n’avez pas ceux-ci, alors ce sera Vraiment Difficile.

Si vous les avez bien, alors vous pouvez faire quelque chose comme

tcfs.each do |tcf|
  Permalink.create(url: "imported-topic/#{tcf.value}", topic_id: tcf.topic_id)
end

Et ensuite créer une PermalinkNormalization qui redirige le chemin des sujets vers /imported-topic/IMPORTED_ID.

Vous pouvez grep les import_scripts pour trouver d’autres scripts d’importation qui définissent des Permaliens et la normalisation des permaliens.

1 « J'aime »

Merci, Jay, pour votre réponse. Au lieu d’utiliser le script d’importation pour la migration, j’ai opté pour une intégration API en raison de la structure personnalisée. J’ai développé un script Python pour importer les publications via l’API et j’ai réussi à récupérer les nouveaux identifiants de sujet pour chaque sujet. Malgré l’importation des anciennes URL avec les nouveaux identifiants/URL de sujet sur environ 6 000 pages, aucune des correspondances ne fonctionne comme prévu. Pourriez-vous s’il vous plaît me conseiller sur ce qui pourrait manquer et comment rectifier ce problème ? Vos conseils seraient grandement appréciés.