Limpeza do moodledata e mdl

Limpeza do moodledata e mdl

por Ricardo Adriano -
Número de respostas: 2

Tenho pesquisado, ainda sem sucesso, sobre a criação de um código PHP ou algo parecido que faça a limpeza do moodledata.

Pensei nesta lógica:

- Deleto os alunos do moodle no usuário/conta/ações em lote

(isto muda o campo deleted do BD para 1)

- o sistema apagaria os alunos com deleted = 1

- pelo userid, a tabela mdl_files apaga as linhas dos usuários que foram deletados

- pelo campo contenthash da tabeal mdl_files se apaga as pastas do 

moodledata/files

 

outras tabelas, pelo userid também teriam linhas apagadas dos usuários deletados.

isso limparia automaticamente o moodle deixando mais leve.

o que acham?

Em resposta à Ricardo Adriano

Re: Limpeza do moodledata e mdl

por Lino Vaz Moniz -

Você já testou esse procedimento?

Pelo que sei no Moodle, ao apagar um registro não necessariamente há um efeito cascata para todos os registros dependentes. Para cada situação é necessário efetuar um teste. 

Para apagar arquivos de um determinado usuário, um dos caminhos alternativos, é montar um script que execute as seguintes etapas:

a) Filtrar os arquivos do usuário na tabela  mdl_files

 b) Mapeie endereço de cada arquivo pelo valor de contenthash e exclua. Para isso, consulte esse post para ver a lógica como localizar aquivos pelo contenthash. 

Para excluir histórico de um aluno, veja algumas orientações aqui 

Para excluir log de um usuário no Moodle, para versão superior ou igual a 2.7, execute no terminal SQL, o seguinte comando:

 DELETE FROM mdl_logstore_standard_log WHERE userid=?
Em resposta à Lino Vaz Moniz

Re: Limpeza do moodledata e mdl

por Ricardo Adriano -

Pensei neste script. 

Vou trabalhar para montar algo que consiga localizar e apagar todas as ocorrÊncias tanto no mysql como no moodledata, a partir

do userid = 1, registrado na tabela de user do moodle.

abraço.