数据库清理工具?

Discourse 是否有数据库清理工具?

此工具将从数据库中删除任何额外的配置数据。该工具将删除数据库中所有不在 Discourse 默认安装中的添加列、配置行和表。该工具将保留所有内容和站点设置。主要重点将是删除数据库中的所有插件和主题组件。

我能想到的最佳解决方案是从备份中设置一个新实例 :slight_smile:

在不费力手动操作的情况下,这是最干净的保留论坛数据的方法。

但是,我认为备份将包含您备份实例中存在的所有表,其中可能包括插件创建的表,即使您在新实例中未安装该插件。

如果您想亲自动手,可以使用 rake 任务删除数据库并创建一个新数据库,然后重新运行所有迁移,但这将删除您的所有数据。

这就是为什么“安装新环境并恢复备份”不是最佳解决方案。您的数据库中仍然残留着旧组件和插件的痕迹。

应该有一个最后的工具,可以清除数据库中的所有组件和插件更改,而保留数据和站点设置。可以在迁移到新的安装解决方案之前运行此工具。

我认为这将很难实现:

  1. 一些迁移是不可逆的
  2. 许多迁移存储在插件中,如果未安装插件,则迁移将不存在,因此无法回滚。

但请尝试构建它,看看您是否能克服这些问题。

1 个赞

所以基本上我们没有任何工具可以移动除人类内容以外的任何内容,包括类别和标签?

您正在使用“migrations”一词。您对此词的含义是指什么?

我使用该词来指代将用户数据和内容“迁移”到系统中。这不应改变默认的数据库结构。

唯一可能改变数据库结构的是插件。除非 Discourse 允许其他方式供人们更改数据库结构。

1 个赞

它们位于 Discourse 的 /db/migrations 文件夹中,并且每个插件(使用它们的插件)

1 个赞