Nous utilisons Discourse 3.3.0, et j’ai le job Jobs::EmbeddingsBackfill qui échoue avec : Job exception: PG::UndefinedTable: ERROR: relation "ai_topic_embeddings_8_1" does not exist
Je peux voir que j’ai la table “ai_topic_embeddings”, mais aucune des tables ai_topic_embeddings_8_1, ai_topic_embeddings_6_1…
Lorsque j’exécute rake db:migrate:status, je vois que les migrations sont appliquées, et la plupart des fonctionnalités d’IA fonctionnent.
Je viens de voir qu’il y a une migration appelée 20240611170905_move_embeddings_to_single_table_per_type
ce qui indique que nous avons appliqué des migrations que nous n’aurions pas dû faire en utilisant la mauvaise version du plugin.
J’ai plusieurs migrations comme celle-ci, qui font référence à celle qui ne devrait pas être faite je pense :
up 20240807150605 ********** AUCUN FICHIER **********
up 20240809162837 ********** AUCUN FICHIER **********
up 20240809163303 ********** AUCUN FICHIER **********
Y a-t-il un moyen de les annuler ? S’il y a un moyen de simplement tout supprimer de discourse-ai sur mon instance et de recommencer, c’est bien aussi.
J’ai réussi à résoudre mon problème en annulant manuellement les migrations avec SQL.
Pour quiconque fait la même erreur, après avoir défini le plugin sur le bon commit, exécutez ceci : rake db:migrate:status
cela affichera des lignes sans fichiers : up 20240809163303 ********** NO FILE **********
pour chacune d’elles, trouvez le fichier de migration associé sur le github du plugin (essayez de rechercher sur toute l’organisation discourse pour que ce soit plus rapide)
ensuite, s’il n’y a pas d’option down, supprimez-la simplement de SQL : delete from schema_migrations where version = '........'; et annulez-la manuellement avec SQL.