discourse-aiで行うべきでなかった適用されたマイグレーション

こんにちは。

Discourse 3.3.0 を使用しており、Jobs::EmbeddingsBackfill ジョブが以下のエラーで失敗します。
Job exception: PG::UndefinedTable: ERROR: relation "ai_topic_embeddings_8_1" does not exist

ai_topic_embeddings テーブルは存在しますが、ai_topic_embeddings_8_1ai_topic_embeddings_6_1 などは見当たりません。

rake db:migrate:status を実行すると、マイグレーションは完了しており、ほとんどの AI 機能は動作しています。

何が問題だったのか、何か考えはありますか?

「いいね!」 1

20240611170905_move_embeddings_to_single_table_per_type というマイグレーションがあるのを見ました。これは、間違ったプラグインバージョンを使用したために、適用すべきではないマイグレーションを適用してしまったことを示しています。

私が思うに、適用すべきではないマイグレーションを参照している、このようなマイグレーションが複数あります。
up 20240807150605 ********** NO FILE **********
up 20240809162837 ********** NO FILE **********
up 20240809163303 ********** NO FILE **********

これらをロールバックする方法はありますか?もし、私のインスタンスから discourse-ai のすべてを削除して、クリーンな状態からやり直す方法があれば、それでも構いません。

「いいね!」 1

SQL を使用して手動でマイグレーションを元に戻すことで、問題を解決できました。

同じ間違いをする人のために、プラグインを正しいコミットに設定した後、次を実行してください: rake db:migrate:status
これにより、ファイルのない行が表示されます: up 20240809163303 ********** NO FILE **********
それぞれについて、プラグインの GitHub で関連するマイグレーションファイルを見つけてください(検索を速くするために、Discourse の組織全体を検索してみてください)。
次に、ダウンオプションがない場合は、SQL から削除するだけです: delete from schema_migrations where version = '........'; そして SQL で手動でロールバックします。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.