数ヶ月前にDiscourseをインストールし、ドキュメンテーションモードセクションにいくつかのトピックをインデックス・トピックとして追加しました。すべて期待どおりに動作しました。
すべてをバックアップし、Digital Oceanアカウントなどを削除しました。
数日前にDiscourseを再度インストールし、作成したバックアップファイルからすべてを復元したところ、ドキュメンテーションセクションを除いてすべてが動作しています。最初は、それらのインデックス・トピックを非公開にしたことが原因かもしれないと思いましたが、すべてをアンインストールする前に非公開にしており、その時は動作していたので、それが問題ではないはずです。それでも、それらを公開してみましたが、うまくいきませんでした。サイドバーには、デフォルトのカテゴリやその他のものがまだ表示されていました。
それから、元のトピックの内容をコピーして、新しいトピックを作成し、インデックス・トピックに設定したところ、それは動作しました。動作しないものと同じようにクローズおよび非公開にしましたが、クローズと非公開が問題ではないことがわかりました。復元プロセス中に、何らかの理由でドキュメンテーションモードが壊れているようです。
リンクをありがとうございます。
まだ全体の構造を構築中だったので、結局新しいトピックを作成し、古いトピックの内容をコピー&ペーストして、古いトピックを削除しました。どちらにしても2つしかありませんでした。
それで、私の質問は次のとおりです。その rake task は、Discourse を更新するたびに実行する必要がありますか?それとも、リストアするときだけですか(将来また行う場合)?
nat
(Natalie T)
4
いいえ、その rake タスクは引用された投稿の日付からのその場限りのものです。
トピックを再作成する必要はないはずですが、カテゴリ設定に移動し、リンクを解除し、保存し、既存のトピックを再リンクするだけで機能するはずです。
RGJ
(Richard - Communiteq)
5
単に疑問なのですが、なぜこれをマイグレーションとして実装しなかったのでしょうか?
nat
(Natalie T)
6
私がその時思い出した限りでは、それはマイグレーションではありえません。マイグレーションは理想的にはアプリケーションコードに触れません(コードがマイグレーションの意図した時点から乖離し、エラーになる可能性があるためです)。
そのPRも理由を示しています。
このPRには、アクティブなドキュメントインデックスのトピックからサイドバーセクションとリンクを再構築するためのrakeタスク(doc_categories.rake)も含まれています。これは、パーサーまたはnokogiriを使用することになるため、マイグレーションで実行することはあまり推奨されません(実装が乖離し、無効なマイグレーションを引き起こす可能性があるためです)。
つまり、私が正しく理解していれば、これからはそのどれも行う必要がないということですか?Discourseをアップデートするたびに、rakeタスクや再リンク処理など、何もですか?
ただ、理解しているか確認したいだけです。
素晴らしい!明確にしてくれてありがとうございます!
nathank
(Nathan Kershaw)
11
インデックストピックを編集するたびにこれをやる必要があり、本当に面倒です。
何か見落としているのでしょうか?
nat
(Natalie T)
13
お仲間である Nat の皆様、この件について承知いたしました。
確かに問題があると思いますが、再現を確実に行う必要があります。来週のどこかで、 hopefully 良いニュースを持って戻ってこられると思います。
nat
(Natalie T)
14
@nathank 早速の質問ですが、discourse-calendar は有効になっていますか?
nat
(Natalie T)
15
@nathank この問題は、カレンダープラグインが有効な場合に発生する可能性があると考えています(PR で説明済み)。基本的には、Calendar の副作用(バグ)により、Docs Categories プラグインがトピックを再インデックスしませんでした。この修正により、確実に再インデックスが行われるようになります。
もしこの修正が機能しない場合は、お知らせください。
nathank
(Nathan Kershaw)
16
お待たせしてすみません。はい、有効です!
素早い予防的な修正をありがとうございます。すぐにサイトを更新してテストしてみます。