Moodle:清理数据库

Moodle: Clean up database

我有一个用 Moodle 开发的 LMS 网站。它有很多数据是我的 QA 团队添加的。此数据包括用户、论坛、帖子等。

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

有人可以帮忙吗?

你是对的,用户没有从数据库中删除(并且正是因为你猜到的原因 - 系统上仍然有引用该用户 ID 的记录,所以记录需要保持存在;也可以恢复用户在某些情况下,因此需要为此保留它们)。

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

如果这不是您真正想要的,而是想要一些配置设置和一些(全部?)课程,那么它不再是 'clean' 副本,但您可以尝试以下:

  • 使用 Moodle 风格插件复制系统设置 - https://moodle.org/plugins/view/local_flavours
  • 使用备份和恢复来复制您要转移的任何课程(有或没有用户数据,由您选择)。
  • 您可以使用 Moosh 命令 'course-backup' 和 'course-restore'(以及 'category-export' 和 'category-import')来简化一些备份 &还原进程。

我使用了以下内容:

  1. 使用 SSH 登录
  2. 从 putty 执行了以下命令:php /path/to/moodle/admin/cli/fix_deleted_users.php
  3. 然后进入数据库并输入以下查询:DELETE FROM mdl_user WHERE deleted = 1

一切正常。基本上,fix_deleted_users.php 删除已删除用户的所有引用,然后将那些空的已删除用户留在 mdl_user table 中,可以进一步删除。我们只需要处理可能使用已删除用户 ID 的第三方插件,但就我而言,我没有安装任何插件,所以它成功了。

令人惊讶的是,我在互联网上没有找到关于此文件的任何文档。希望对大家有帮助。