FluxBBからの移行、被リンクを維持したまま

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

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

同じ質問があり、回答に少し困惑しています。私もかなりの量のFluxBBのインポートを検討しています。

実際、Discourseには「パーマリンク」という機能があります(https://meta.discourse.org/t/how-to-make-a-redirect-url-in-a-discourse-install/40973/4)。つまり、それらを作成することで、Discourseは「/viewtopic.php?id=((old topic id))」のようなFluxBBスタイルのURLを「/t/((new topic slug))/((new topic id))」にリダイレクトできるということでしょうか。トピック内の個々の投稿についても同様でしょうか。ユーザープロフィールのURLについても同様でしょうか。(そのため、多くのパーマリンクが必要になります)。パーマリンクのデータベーステーブルが見えます。

それは素晴らしい解決策のように思えますが、FluxBBインポーターはパーマリンクを作成していません。そのためのコードは見当たりません。実際、インポートスクリプトのいずれにも、それを行うためのコードは見当たりません(「Permalink」ActiveRecordモデルへの言及はありません)。

FluxBBインポーターをこれを行うように変更することに喜んで協力しますが、他のインポーターの例はありますか?

コードで見かける、これに類する唯一のものは、「LookupContainer」(https://github.com/discourse/discourse/blob/main/script/import_scripts/base/lookup_container.rb)が初期化され、古いIDとそれに対応する新しいIDをすべて保存していることです。これは、多数のPermalinkオブジェクトを作成するために使用できますか?

そうです。

vbulletinインポーター(また、answerhub、vanilla、mylittleforum、bbpress、drupalなども確認してください。おそらく大文字と小文字を区別してgrepしたか、何かあったのでしょう)を確認してください。これはimport_topics関数で実行されます(パーマリンクファイル関数は無視してください)。パーマリンクと、fluxbbのURLをあなたが作成したパーマリンクにマッピングするpermalink_normalizationを追加するコードが必要になります。

くそっ!君の言う通りだ。IDEの検索機能が私を騙していたようだ。実際には「Permalink」オブジェクトが大量に作成されている。だから、これをFluxBBインポートに追加することを検討するかもしれない。

@alldritt さん、あなたの大きなインポートはどうでしたか? macscripter.net はまだFluxBBを使っているようですが、うまくいかなかったようですね? :slight_smile: もしfluxbbインポーターがbbcodeをあまりうまく変換していないことに気づいたら、それに対する様々な修正に取り組んでいます。プルリクエスト進行中

これらの議論の間には、興味深い(そして厄介な)重複がある。FluxBBは、別の投稿にIDでリンクするために [post=123] の形式のbbcodeをサポートしている(ソースのFluxBBシステムの古い投稿IDを参照)。これらのIDをリダイレクトするソリューションがあれば、それに対処しやすくなるだろう。

「いいね!」 1

そうはなりません。パーマリンクは外部からのリンクにのみ機能し、内部リンクには機能しません。これらの内部リンクをDiscourseの引用に書き換える何かを記述する必要があります。そのための例もいくつかあります。

このトピックを復活させてくれてありがとう!

数回インポートを試みましたが、諦めました。時が経ち、M1 Macに移行したことで、Discourseのテストベッドを失い、再作成する時間がありませんでした。時間があれば、このプロジェクトに戻るつもりです。既存のリンクのリダイレクトを処理することが、私が苦労していた点でした。BBCodeがすべて正しく変換されたか確認するところまで到達していませんでした。変換すべき投稿が13万件以上あり、確認するのは気が遠くなるような作業です。

それでは、お役に立てれば幸いです。昨日、FluxBBインポーターに create_permlinks 機能を実装する作業をしていました。

現在、これは私のWIP PRにあります。*「Add Permalink creation logic to FluxBB importer」*コミットを、このリストの最後に参照してください。すべてをいつかマージしたいと思っています。おそらく、異なる順序になるでしょう(現在、この基本的なPRのレビューを待っています。これは開始点となります)。

これにより、4種類のFluxBB URLに対するリダイレクトが作成されます。

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

これら4つで、人々が維持したいと思っているリンクはすべてカバーできると思います。どう思いますか?


FluxBBの特別な内部リンクの話題に戻ります。

これらを新しいDiscourse内の内部リンクとして維持しようとは考えていませんでした。怠惰な解決策:古いFluxBBフォーラムのURL(完全なURL、つまり外部リンク)にリンクされ、これらのパーマリンクのおかげで、ユーザーは新しいDiscourseの正しい場所にリダイレクトされます。

あなたの怠惰な解決策はうまくいくかもしれません。内部リンクの書き換えの例を見つけることができますが、怠惰でも良いのです。

「いいね!」 1