vBulletinのimport_scriptで子カテゴリをインポートする際のバグ

皆様、こんにちは。

まず何より、Discourse に対して 心からの感謝 を申し上げます。Discourse は芸術作品のようであり、非常に印象的です。vBulletin を 10 年以上使用していましたが、移行先のフォーラムソフトウェアが見つかりませんでした(どれも「同じようなもの」で、つまらないものばかりでした)。しかし、Discourse が現れました。ありがとう

現在、私はテスト環境モードで、vB 3.8.X から最新の Discourse へデータをインポートしています。どちらも docker コンテナ 上で行っており、私にとってどちらも初めてのことです。実際、今週以前は Ruby を 1 行も書くつもりはなかったのですが、Discourse があまりにも優れているため、それだけの価値があります。

import script である vbulletin.rb は、すでに 1 日ほど実行されており、ほとんどの場合問題なく動作しています。実際、非常に印象的です。数回エラーが発生しましたが、スクリプトを再起動するとエラーは消えました。

ただし、子カテゴリのインポート にバグが見つかりました(再起動しても消えません)。それがこちらです:


Traceback (most recent call last):

5: from script/import_scripts/vbulletin.rb:942:in `<main>'

4: from /var/www/discourse/script/import_scripts/base.rb:47:in `perform'

3: from script/import_scripts/vbulletin.rb:84:in `execute'

2: from script/import_scripts/vbulletin.rb:287:in `import_categories'

1: from script/import_scripts/vbulletin.rb:287:in `each'

script/import_scripts/vbulletin.rb:289:in `block in import_categories': undefined method `[]' for nil:NilClass (NoMethodError)

root@localhost-app:/var/www/discourse# su discourse -c 'bundle exec ruby script/import_scripts/vbulletin.rb'

この問題に対処する私の計画は少し貧弱です。vB データベースを再ダンプして、すべての フォーラムを に変更し、再度移行全体を行うつもりでした。しかし、もっと社会的な対応として、これをバグ報告として投稿すべきかもしれないと考えました。

上記のような「初心者のような貧弱な方法」以外の、より良い解決策に対するご提案はありますか?

もしなければ、再度ダンプして DB を手動で調整し、再度移行を行う予定です。これもきっと「初心者のような貧弱な方法」だとは思います。

ありがとうございます!

vB 4 以上へのアップデートを検討してみてください…インポーターは主に 4.x 向けに設計されています。

カテゴリの階層はどの程度深くネストされていますか?もし 1〜2 段階しかないなら、287〜291 行目のフラット化コードをコメントアウトしてください。

「いいね!」 3

いいえ、vB4 へのアップグレードは行いません。

問題のある行は昨日すでにコメントアウトしました。

私の質問は、基本的に vB 3.8 向けにこの問題を修正する方法です。コードのバグ修正に関する回答が得られない場合は、自分で修正します。この投稿でコードに関する「バグ」を報告しましたが、コードの修正に関する回答が得られない場合は、自分で修正します。

そのため、ここにバグを投稿しました :)。これはコードに関する「バグ」報告です。コードにバグがあるため、報告しました…

ふむ。私は「社交的」になろうとして、ここでバグを投稿し、リーダー(コード担当者)から私のケース(vB4 の場合ではない)に役立つ提案を得られることを期待していました。再度申し訳ありませんが、いかなる条件でも vB4 へのアップグレードは行いません。直接的な表現と、その考えに従わなかったことについてお詫びします。必要に応じて移行スクリプトを修正し、データベースも必要な修正を行います。これまでに、カスタムコードタグなどのためのコードを追加しています。

では、よろしくお願いいたします。

vBulletin インポータのコントリビューターであり、VB 5 インポータの作者、そして vB から Discourse への移行を 50 件以上行った者として、インポータは主に vB 4 でテストされており、EOL(サポート終了)からすでに 7 年半以上経過している vB 3.8 ではテストされていないという情報を共有しただけです。あなたを「感心」させようとしたわけではありません。

ともあれ、これはインポータのバグなのか、vB 3.x 関連の問題なのか、それとも破損したデータベースなのか疑問に思います。後者の可能性の方が高いと推測します。検出関数が結果を返さない場合にデフォルトのカテゴリを選択するようにコードを変更することもできますが、少なくとも vB 4 の場合、これは適切な親を持たない孤立したカテゴリ、つまり破損したデータベースを示すことになります。

「いいね!」 3

私たちのデータベースに破損した箇所はありませんし、vB3.8.X の問題である可能性もあれば、そうでない可能性もあります。しかし、もちろんこれは vB3.8.X のアップグレードであるため、vB3.8.X に関連しています(笑)。

一方、インターネット上の他のフォーラムで、vB4 から移行する場合でも、多くの人が Discourse への移行時に問題を抱えているという多くの投稿を読んでいます(これは普通のことです)。したがって、もちろん、移行のバグを報告しているのは私だけではありません。誰も移行を好んではいません。みんなにとって退屈な作業です。でも、Discourse が好きなので、私は平気です。これを書いた人たちは芸術家です!彼らは素晴らしいです。

前述の通り、確実に機能する「つまらないアプローチ」は、データベースを再度ダンプし、保持したい子フォーラムをすべて親フォーラムに変更(手動で)してから、再度移行を行うことです。重要な子フォーラムに対して「デフォルト」のトピックを割り当てたくありませんし、私たちの主要なフォーラムはすべて親ではなく子です。

@michaelp もし、レガシー版の vB3.8.X との互換性を確保する経験や関心がないのであれば、それは完全に理解できます。しかし、他方で、私も何十年もの間、コーディング、ポート、移行、構築、バグ修正を行ってきましたし、このコードに関する バグ レポートを Meta Discourse に投稿しました。私は vB3.8 が大好きで、今日でも vB4 や vB5 よりも素晴らしいフォーラムだったと思っています。だからこそ、vB5 へのアップグレードは一度も行っていません。vB4/5 は好きではありません。:slight_smile:

これが「vB4 でも vB5 でもない」という議論に発展するようなら、ここではこれ以上移行のバグを投稿せず、移行完了後にさらに活動する方が良いでしょう。

乾杯。

ここでは進捗を記録し続け、今はこの議論から離れ、単に 完了させる ことにします:

いいえ、そうではありません。ただ、あなたのお手伝いをし、あなたにとって最も手間のかからない移行経路を見つけようとしただけです。正直な答えで不快にさせたなら申し訳ありません。どうやら、あなたの触れやすい部分に触れてしまったようです。そんなつもりはなかったのですが。

移行頑張ってください!改善点が完成したら、プルリクエストを送っていただけると嬉しいです。

「いいね!」 1

@michaeld さん、全く問題ありません。

vbulletin.rb 移行スクリプトを作成していただき、本当にありがとうございます。

あなたが親切にしようとしていたことは理解していますし、確かに「vB4 への移行を提案されたこと」は少し気に障りましたが、全く恨みはありません。時には私も「気に障りやすい」タイプです。特にバグを報告した際に、私の状況やケースにとって役に立たない返答が返ってきたときはそうです。

実際、この移植が成功すれば(現在も移植中ですが)、コアとなる vbulletin.rb スクリプトについて、あなたとすべての共著者に対して大きな恩義を感じることになるでしょう!

Discourse は本当に素晴らしいです!!

改めて、移行スクリプトを作成してくださりありがとうございます。これなしでは、この手間のかかるプロセスに着手することは絶対にできなかったでしょう!

改めて感謝します!

PS: 前述の通り、この「修正」の計画は、単にデータベースをダンプし、重要な子フォーラムを親フォーラムに変更して、「また始めよう(play it again, sam)」というものです… :slight_smile:

明確にするために申し上げますが、vbulletin.rb のすべてを書いたわけではなく、一部に貢献しただけです。vbulletin5 専用のものは私が作成しました。

「いいね!」 1

いずれにせよ、ありがとう

両方の貢献は確実で、フォーラムコミュニティへの贈り物です。

vB3.8.X の移行に関する更新情報は、出来事が展開するにつれて記録し続けている「そちら」に投稿します。

では、また

「いいね!」 1


現時点で私が述べる「注意すべき」点は、私がこれまで交流してきた「Discourse 側の」2 名の人物の両方が、この移行から利益を得ようとして「手を差し伸べていた」ことです。一人は私を支援するために報酬を要求する雇われた「移行の専門家」であり、もう一人は Discourse フォーラムにいて、残りの一人は Discourse サーバープロバイダーでした。

これは私を非常に悲しくさせます。私は商業的な利益なしにあなた方を助けようとしていたのです。

「いいね!」 5

いや、それはちょっと公平じゃないね @neounix

@michaeld は Discourse コミュニティで非常に活発で、オープンソースの精神に則って多くの人々に貢献しています。特に価値があるのは、彼ら (Communiteq(旧 DiscourseHosting)) が非常にリーズナブルな料金で多くの Discourse サイトをホストしており、実世界での Discourse ホスティングについて豊富な経験を持っていることです。:revolving_hearts:

「いいね!」 5

こんにちは、Jeff さん。

最近、いくつかの Node-RED ソリューションを構築し、Node-RED フォーラム(Discourse サイトです)に参加しました。

そのフォーラムでは、皆が互いに助け合うために熱心に動いています。初心者から専門家まで、誰もが生き生きと他者を支援しています。実際、時には少し「テストステロン駆動」のように見え、経験豊富な人々が「最高の支援者」や「最速の回答者」になることを競い合っているようにも感じられます。興味深いことです。私は過去 10 年間、オンラインコミュニティ(当社のものも含む)でこのような様子を目にしてきました(しかし、それはまた別の話です)。

長年この分野に携わっている方として、あなたも同意されると思いますが、あらゆるオンラインコミュニティには強みと弱みがあります。新しい人々がコミュニティに参加すると、確立された社会的階層の一員ではないため、貴重な視点を提供してくれます。オンラインコミュニティに詳しい人なら、誰もがこれに同意するでしょう。

もちろん、@michaeld さんの貢献には心から感謝しています。また、vbulletin.rb スクリプトは、あなたが創造した「芸術作品」である Discourse へのレガシー移行にとって、非常に有益で感謝すべき出発点となりました。Discourse は本当に素晴らしいです。私は何年もこんな素晴らしいものを待ち望んでおり、悲しくも vB3 に縛られ続けていました。私自身、Discourse のようなものを作るほどコーディングが得意ではありません。

しかし、移行テスト中にバグレポートを提出した際に冷たくあしらわれ、さらにそのバグレポートが「バグ」から「サポート」カテゴリへ移動させられたことで、より一層嫌な思いをしました。明らかに vbulletin.rb スクリプトにはバグが存在するのに、です。また、このスクリプトをより良く動作させるために、完璧に機能している vB3 フォーラムをひどい vB4 フォーラムに移行するよう提案されたことは、現実的な選択肢ではありません(正直に言って、私は嫌気がさしました)。これまでに、バグレポートが真剣に受け止められたり、修正への関心が示されたりしたことはありません。したがって、vB3 移行に関連するバグレポートを提出しないのが賢明だと思われますが、そうではないでしょうか?

さて、これは問題ではありません。例えば、現在の添付ファイル移行用の vbulletin.rb スクリプトには、vB3 には存在しない filedata というテーブルが必要です。しかし、問題ありません。私は回避策を作成します。forums から categories への移行方法にはバグがありますが、これに対してもすでに回避策を講じています。私の回避策が 完璧 ではないかもしれませんが、それは構いません。まだテスト中です。

これを 人格 に関する議論にしないようにしましょう。私は移行作業に取り組んでいます。これは非常に多くの作業を要し、進みは遅いです。まるでペンキが乾くのを見るようなものです。しかし他方では、Discourse が生き生きと動き出す様子を見るのはワクワクします。私はこのコミュニティに心から恩義を感じており、この「あまり楽しくない段階」を乗り越え、「楽しい段階」に入ったら、必ず貢献します。

Discourse には心から感謝しています。それは 芸術作品 であり、非常に優れたオープンソース製品です。素晴らしいです。ありがとうございます。また、移行スクリプトは vB3 にとっては少しバグが多いものの、実用的です。移行のための出発点として、心から感謝しています。

私のコメントが 不当 だと感じられたことについてお詫びします。私のミスです。私は数週間にわたり Node-RED フォーラムに深く関わり、そこではコミュニティが他者を支援する素晴らしい姿勢を持っていたため、商業的な関心を持ついくつかの Discourse 参加者との最初の体験に嫌気を感じてしまいました。現時点では、それが私の印象です。こちらの第一印象と、あちらの第一印象を比較して申し訳ありません。Node-RED とその Discourse の利用が、当サイトを Discourse へ移行させる決め手となりました。

あなたの第一印象が 不当 だと感じられるかもしれませんが、私は特定の個人を名指しせず、私の印象を匿名で伝えていました。それはその時点で 公平 だと思ったからです。また、私の バグレポートmeta によって基本的に 軽視され、無視された ことを考慮すると(つまり、「まあ、vB3 だしね、LOL」といった感じで)、あなたにとって 公平 な対応とは何でしょうか?商業的な関心に関する私の「警告的な」コメントを削除してほしいとお考えでしょうか?

私は移行作業を行っています。スクリプトのバグがあっても、進んでいます。バグは単なるバグであり、潰して次に進むべきものです。

この その場限りのテスト移行 の最中に、生き生きと支援的な Node-RED の経験から抜け出したばかりだったため、NR Discourse コミュニティ ほど感銘を受けなかったことについて、もしお詫びが必要であればお詫びします。しかし、@michaeld さんは私に「感銘を受けてもいなくても気にしない」と答えました。それはそれで構いません。誰もが自分の意見を持つ権利があります。私の最初の意見や印象も含まれると仮定してよろしいでしょうか?

Discourse には非常に好意的な印象を持っています。バグはありますが、vbulletin.rb スクリプトは 十分に機能 しており、始めることができます。そして、楽しむのに十分な機能があります。それが最も重要なことですよね?

私たちは楽しむべきです!

もし metavbulletin.rb スクリプトの私のバグレポートをより真剣に受け止めてくれたら、もう少し満足できたかもしれませんが、それでも理解できます。私たちは vB3 にいて、「自分たちで何とかしてください、仲間よ」というメッセージが伝わってきます。それは完全に理解できます。私は理解しています。

誰も vB3 を楽しいとは思っていません。LOL 特に私 は、10 年以上を経て、ついに 時代遅れで頂点を過ぎたレガシーなフォーラム から離れ、現代のオンライン芸術作品 である Discourse へ移行できることに、心から幸せと感謝を感じています。

もし、私の 単なる警告コメント を削除してほしいとお考えであれば、おっしゃってください。この返信の後でも、それがまだ 不当 だとお考えであれば、削除します。私はそれが 公平 だったと感じていますが、外部の視点も歓迎します。外部の視点は良く、一般的に非常に役立ちます(それは双方向であるはずです)。

では、また。

信じてください、古いソフトウェアからコミュニティを移行することには大賛成です。それが Discourse の主要な目標の一つです。

もしあなたの取り組みが成功し、すべてが正常に動作していることを証明できれば、Discourse から財政的な助成金を提供して、VB3 から Discourse への移行スクリプトの開発をサポートすることも可能です🤗

こんにちは、ジェフさん。

お申し出をいただきありがとうございますが、私は特に問題なく、金銭的な支援は必要ありません。

「人生は豊かだ」とよく言われますが、私もまさにその通りで、さらに多くの資金を必要としていません。私は運良く、本当に恵まれていると感じています。そして、人生を「より豊かになり続けるゲーム」としては見ていません。

当サイトは、誕生からピーク、そして「老朽化」に至るまでの長年にわたり、検索結果を通じて5億人以上のユニークな未登録ユーザーにコンテンツを提供してきました。もしかしたらそれ以上かもしれません。私はそれを細かく追跡していません。

この「良いカルマ」こそが私にとって十分です。長年のITキャリアを通じて、多くの人を助けてきたという事実を知っているからです。私にとって(そしてあなたにとっても)重要なのは金銭ではなく、技術フォーラムで他者を助けるという「良いカルマ」です。したがって、サイトを Discourse にアップグレードすれば、間違いなく全員にとってより良くなるでしょう。私は Discourse のような 芸術作品 をコードで書くことはできません。私は職業上、クロスドメインのドベラー であり、サイバーセキュリティの専門家、そしてシステムエンジニア ですが、現在は公的な生活や専門的な活動から、ほぼ完全に引退しており、幸せに暮らしています。

最初の テスト移行 は、予想よりもはるかに順調に進みました。いくつかの バグ と、当サイト固有の問題(カスタムBBCODEタグなど)が見つかりましたが、これらはすべて私が管理できます。問題ありません。その後、コミュニティに合わせてカスタマイズする必要がありますので、そこには楽しい作業が待っています。移行101 を乗り越えることを楽しみにしています。

vb3 については、確かに多くのレガシーな vb3 コミュニティが存在しており、それらを支援しようとするあなたの関心は素晴らしいことです。vbulletin.rb は、私たちほど技術に詳しくない人々の移行を管理するには十分に進んでいないことに同意します。コアとなる vbulletin.rb は「十分だ」と感じていますし、エラーが発生するたびに簡単に修正しています(実際、そうしてきました)。

この作業に戻ります。vbulletin.rb 内でエラーを考慮してさらに変更を加える必要があります。これらのエラーは、私が進行中に当サイトで詳細に記録しています。これを完了させる必要がありますが、今すぐ 実行する 方が早く終わります。

改めて、親切なお申し出をありがとうございます。この過程におけるすべてのノート、良い点、完璧ではない点、そして素晴らしい点は、私が以前投稿した以下のリンクにあります。

このフェーズが 完了して片付いたら、メタフォーラムに戻り、ユーザーにテストしてもらい、フィードバックをもらう予定です。大多数のユーザーが、レガシーな…混乱から離れてDiscourseへ移行することを望むと確信しています。

改めて、Discourseに感謝します。あなたの寛大なオープンソースの贈り物について、どれほど素晴らしいかを言葉で表現しきれません。

正直に言うと、あなたの貴重な時間をこの件で奪いたくありません。vb3 はもはや誰にとっても楽しいものではなく、特に 私自身 にとってはそうです。重たい vb3 の錨 が私の首から外れることを願っています。私はこれを管理できます。問題ないと思います。

改めて、Discoursevbulletin.rb 移行スクリプトの基礎を提供してくださったあなたとDiscourseチームに敬意を表します。バグ全く問題ありません。もし簡単すぎたら、それほど面白いものではなかったでしょう!

実際、移行はすでにうまく機能していますが、当サイトのカスタムBBCODEに対応するカスタムコードをさらに記述し、いくつかのバグを修正して、再度実行する必要があります!

改めてありがとうございます!

「いいね!」 1

しかし、

@codinghorror

もしチームの誰かと一緒に、vb3 に欠落したテーブルに起因する filedata エラーのような、より大きなバグの修正に取り組んでほしいなら、喜んでお手伝いします。他の vb3 コミュニティの利益のため、また vb3 向けの vbulletin.rb をより良くするために、開発ペースを落としても構いません。

ご一報ください。考え直しましたので、ペースを落としてお手伝いすることに問題ありません。少なくとも、この件において自分勝手だったり、チームプレーヤーではないように見られたくはありません。

正直に言えば、私は優れた コーディングの共同作業者 ではありませんが、レガシーの vb3 ユーザーの助けになるのであれば、試してみるのは喜んでやります。

「いいね!」 1

待ってください。まず、私がそのようなことは言っていません。私が言ったのは、あなたを「感銘させよう」とはしていなかったということです。これは、あなたが「私の答えに感銘を受けなかった」と述べたことへの返答でした。その後、あなたはご自身の投稿からその部分を削除されました。繰り返しになりますが、これには悲しくなります。

また、あなたが感銘を受けたかどうか、あるいは冷たく扱われたと感じたかどうかに関わらず、あなたは私の背後で、「この移行から金を稼ごうとして手を差し伸べていた」と述べましたが、これは全くの事実無根です。その後、あなたは多くの言葉を費やしましたが、この事実無根な主張について何も触れませんでした。むしろ、あなたはそれを「繰り返しました」。「そのように感じられたことをお詫びします」というのは、謝罪ではありません。

私は依然として、これはバグではないと考えています。また、あなたのフォーラムがデータベースに保存されている方法に何らかの問題があると考えています。それは単に「間違っている」か、あるいは vB3 では許容されていたが vB4 では許容されない何らかのものです。

私はあなたが vB4 を「実行」することを求めたわけではありません。データベースを vB4 に移行し、その後インポーターを通じて実行することを提案しました。これは真の「Unix スタイル」であり、複数のステップをパイプして目的の結果を得る方法です。私見では、これが最も短く、最も安価な移行経路です。

「いいね!」 1

これは適切なアドバイスです。VB4へのアップグレードができない理由があるのでしょうか?それとも、VB3用の完全な新しい移行スクリプトを書くよりも簡単かもしれません。

「いいね!」 1

Micheald さん、

みんなのために、もうこの件は終わりにしてください。

私も他の人ほどではないにせよ、ある程度は読めますが、あなたが言ったのはこうでした。

vB 4 に少なくともアップデートすることを検討してください…インポーターは主に 4.x を対象としています。

これは以下とは全く異なります。

データベースを移行し、その後インポーターに通すことを提案したのです。

もうやめてください、@Micheald さん。

この些細な言い争いをやめてください。お願いします。

これは完全に生産性がありません。

私の提案を誤解されたのであれば、心よりお詫び申し上げます。さらに、私の誠意あるアドバイスが「非生産的」と感じられたことにも深くお詫びします。

私は決して、誰かが vB4 でフォーラムを「運営」することを提案することはありません。

このトピックから購読を解除させていただきます。私を公平に扱っていないと感じるためです。

「いいね!」 3

私は同意しません。実際、当社のレガシーな vB 管理パネルによると、vB4 へのアップグレードはそもそも不可能です。

もちろん、当サイトは長年 vB を利用しているため、vB 側でこれがどのように機能するかについてはある程度理解しているはずです。

すでに述べたとおり、vB4 へのアップグレードは当社の場合、最初から検討対象外です。

これは堂々巡りで進んでいません(まるで円陣を組んで互いに撃ち合うようなものです、笑)。最初は「vB4 へ移行しよう」、次に「vB3 で一緒に頑張って楽しもう」…そして、おっと、「私たちの意図は『数日前に非現実的だと伝えた通り、vB4 へ移行しよう』ということでした」なんて話になります。

meta でのこの状況は本当に楽しくありません(笑)。

どうか、DB を vB4 にアップグレードすればすべてが良くなる という考え方はやめましょう。これは最初から検討対象外であり、実現しないことはすでに明確にしています。

誠にありがとうございます

ご自身でお確かめください…vB4 へのアップグレードオプションはありません。繰り返しになりますが、これは「選択肢外」です。

vB の管理パネルからこの画像をご覧いただければ、お分かりいただけるはずです…:frowning: