迁移在更新日历插件到最后一个提交时失败

您好,

我在 Cloudron 上使用 Discourse 2.8.8 和 Discourse Calendar(commit https://github.com/discourse/discourse-calendar/commit/1b9ef8192a6b8a6a9ac7b98c7c72c16f97bcf00d)。当我尝试将插件更新到最新 commit(https://github.com/discourse/discourse-calendar/commit/d3bcef60d384fd92c6eb398a46b6240d89a17061)时,应用程序启动时出现此错误:

==> Migrating database
...
ArgumentError: Unknown migration version "7.0"; expected one of "4.2", "5.0", "5.1", "5.2", "6.0", "6.1"
...
/app/code/plugins/discourse-calendar/db/migrate/20220604200919_create_disabled_holidays.rb:3:in `<main>'

文件代码:discourse-calendar/db/migrate/20220604200919_create_disabled_holidays.rb at main · discourse/discourse-calendar · GitHub

我在论坛上还发现了这个帖子:

但我不知道为什么它不起作用(也不明白如何修复……)

有什么解决办法吗?

根据 .discourse-compatibility 文件,当您处于 2.8 stable 版本时,不应更新/无法更新到该提交。

您是否有 plugin:pull_compatible_all?(应该有)

2 个赞

感谢 @RGJ。我不知道这种文件。将来我会检查它。

你是否有 plugin:pull_compatible_all?(你应该有)

我不知道那是什么。我使用 Cloudron 实例来部署 Discourse。要更新插件,我必须按照文档说明将其删除并重新安装:

但我刚刚看到我有一个 site_settings.yml 文件可以添加额外的自定义设置。我应该在这里用 plugin:pull_compatible_all 设置一些东西吗?

您可能想将 Cloudron 的人引向这个话题,因为他们似乎没有取得什么进展,只是告诉您这是您这边的笔误,或者“您是否在正确的目录中?” :laughing:

他们需要更新他们的文档。

1 个赞

我从未问过 Cloudron 社区,我将在 Cloudron 论坛上开一个讨论帖。

他们为什么要更新文档?

问题在于您使用的是不受支持的安装方式。我们只能真正支持标准的安装方式。第三方软件包由于 Discourse 本身的变化而经常出现问题——这就是为什么不推荐它们的原因。

您试图安装的日历插件版本与 Cloudron 包中的 Discourse 版本不兼容。Cloudron 对 Discourse 进行了重新打包,因此没有使用受支持的插件安装方式。除非您想切换到可支持的安装方式,否则他们需要指导您解决此问题并更新他们的文档。

1 个赞

我的歉意。两天前,有其他人问了完全相同的问题/遇到了完全相同的问题:

https://forum.cloudron.io/topic/7687/installing-a-discourse-plugin-on-cloudron

2 个赞

好的。我将加入 Cloudron 论坛的讨论。
感谢您的回复,我更好地理解了 Discourse,以便为 Cloudron 社区提供帮助并分析未来的问题。

1 个赞