在多站点上卸载插件

这是一个相当特殊的用例,可能是个 bug,我很想知道是否有好的解决方案。
@sam 我标记你是因为如果有人应该知道,那很可能就是你。

考虑一个多站点安装。

  1. 论坛 A 被添加到多站点
  2. 安装了一个修改数据库的插件(例如,添加了 chat_enableduser_options 的聊天插件)
  3. 运行迁移,并将列添加到论坛 A 的某些表中
  4. 插件被移除,列将保留
  5. 论坛 B 被添加到多站点
  6. 现在我们有一个多站点,包含论坛 A 和论坛 B,但 user_options 中的列定义不同
  7. multisite:seed_fu 运行遇到问题(我认为是因为 ActiveRecord 模型缓存?)
#<ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column user_options.chat_enabled does not exist
LINE 1: ...lendar", "user_options"."oldest_search_log_date", "user_opti...
4 个赞

我几乎可以肯定,当我最近尝试将一个新站点添加到多站点时,我也遇到了这个问题。感谢您清晰地阐述了它。

1 个赞

这确实是个噩梦,您需要手动进行清理。

在所有多站点设置中保持架构一致至关重要。