您好,
我们正在使用 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_1”、“ai_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 组织中搜索,这样会更快)
然后,如果没有 down 选项,只需从 SQL 中删除它:delete from schema_migrations where version = '........'; 并使用 SQL 手动回滚它。
1 个赞
system
(system)
关闭
2024 年10 月 17 日 14:09
4
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.