Moodle:清理数据库

时间:2015-11-05 14:39:24

标签: moodle

我有一个用Moodle开发的LMS网站。它有很多数据已由我的QA团队添加。这些数据包括用户,论坛,帖子等。

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

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

我使用了以下内容:

  1. 使用SSH登录
  2. 执行以下命令来自putty:php /path/to/moodle/admin/cli/fix_deleted_users.php
  3. 然后进入数据库并提出以下查询:DELETE FROM mdl_user WHERE deleted = 1
  4. 一切都运转正常。基本上,fix_deleted_users.php删除已删除用户的所有引用,然后将那些空的已删除用户留在mdl_user表中,可以进一步删除。我们只需要处理可能使用已删除用户ID的第三方插件,但在我的情况下,我没有安装任何插件,因此它成功了。

    令人惊讶的是,我没有在互联网上找到关于此文件的任何文档。希望它可以帮到某人。

答案 1 :(得分:0)

您是正确的,用户不会从数据库中删除(并且正是您猜到的原因 - 系统上仍有记录引用该用户ID,因此记录需要保持现有;还可以恢复用户在某些情况下,因此需要保留它们。)

如果您想在生产站点上获得Moodle的干净副本,那么请从干净安装开始。

如果那不是你想要的,而是想要一些配置设置和一些(全部?)的课程,那么它不再是一个“干净”的副本,但你可以尝试以下:

  • 使用Moodle flavors插件复制系统设置 - https://moodle.org/plugins/view/local_flavours
  • 使用备份&恢复以复制您要传输的任何课程(有或没有用户数据,按您的选择)。
  • 您可以使用Moosh命令'course-backup'和'course-restore'(以及'category-export'和'category-import')来简化部分备份和&恢复过程。