2015-11-05 115 views
1

我有一个在Moodle中开发的LMS站点。它有很多我的QA团队添加的数据。此数据包括用户,论坛,帖子等。Moodle:清理数据库

Moodle在清理网站方面有一些奇怪的行为。例如如果我们从管理员帐户中删除用户,则条目仍保留在数据库表{user}中。很可能是因为被删除的用户可能有其他历史帖子。但是没有办法从数据库中清理已删除的用户。我的客户希望获得生产应用程序的完整副本。

有人可以帮忙吗?

回答

1

我用以下:

  1. 登录与SSH
  2. 执行跟从腻子命令:php /path/to/moodle/admin/cli/fix_deleted_users.php
  3. 然后在数据库中去,把下面的查询:DELETE FROM mdl_user WHERE deleted = 1

一切工作正常。基本上,fix_deleted_users.php删除所有已删除用户的引用,然后将mdl_user表中可以进一步删除的空删除的用户留下。我们只需要照顾可能使用已删除用户ID的第三方插件,但在我的情况下,我没有安装任何插件,因此取得了成功。

令人惊讶的是,我没有在互联网上找到这个文件的任何文件。希望它能帮助别人。

0

你是对的,用户不会从数据库中删除(并且正是你猜对的原因 - 系统上还有引用该用户标识的记录,所以记录需要保留现有的;也可以恢复用户在某些情况下,所以他们需要保留)。

如果您想在生产站点上使用Moodle的干净版本,那么只需从全新安装开始。

如果这不是你想要的,而是想要一些配置设置和一些(所有?)课程,那么它不再是一个'干净'的副本,但你可以尝试以下内容:

  • 使用Moodle的口味插件复制的系统设置 - https://moodle.org/plugins/view/local_flavours
  • 使用备份恢复&复制要传输的任何课程(有或没有用户数据,在你的选择)。
  • 您可以使用Moosh命令的“课程备份”和“课程恢复”(以及“类别导出”和“类别导入”)来简化备份过程的一些备份。
+0

我要尝试使用风味插件。但他们应该给予简化的部署应用程序的方法。 –

+0

谁应该给这个?我不太清楚你想要什么 - 部署Moodle站点非常简单,请设置config.php,运行安装。如果你想将一组配置从一个站点转移到另一个站点,那么这个风格插件就是这样做的。如果你想传输所有的数据,那么只需导出数据库并导入它。 – davosmith

+0

是的,但有很多数据我们不希望与生产开发一起传输。导出QA应用程序也会产生不必要的数据(例如,在用户表中包含他们的测试职位) –