2015-11-05 128 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應用程序也會產生不必要的數據(例如,在用戶表中包含他們的測試職位) –