Удаление всех курсов в moodle

Удаление всех курсов в moodle

от Maks Amirov -
Количество ответов: 9

Добрый день! Начали отчистку курсов с БД! Так как курсов около 3000 в ручную удалить не вариант и мы решили удалить с phpMyadmin то есть с таблицы mdl_cource! Подскажите пожалуйста где и каких таблицах нужно делать отчистку чтобы полностью удалить все!! Спасибо за ответ

В ответ на Maks Amirov

Re: Удаление всех курсов в moodle

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle

Крайне не советую так делать. И вообще, что либо редактировать в бд moodle напрямую. Особенно, если компетенции вашего программиста не хватает, чтобы самому спланировать эту работу и оценить все риски и он обращается на форум с этим.

Альтернативные варианты:

1. Написать скрипт, который делает удаление с помощью rest (если компетенций вашего программиста для этого не достаточно, то к базе данных его нельзя подпускать на пушечный выстрел).

2. Сделать новую чистую инсталляцию и с нуля настроить, потом импортировать пользователей. Опять же, если вашему специалисту не хватает компетенций понять, как и какие настройки переносить, то у вас нет специалиста и в таких условиях прямое редактирование бд тем более противопоказано.

В ответ на Alex Djachenko

Re: Удаление всех курсов в moodle

от Maks Amirov -
ну например если уже начали удалять что дальше? В каких таблицах удалять?
В ответ на Maks Amirov

Re: Удаление всех курсов в moodle

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle
То, что Вы собираетесь сделать, равносильно удалению апендикса по советам с форума.
Никто Вам не даст исчерпывающий ответ, потому что для правильного ответа на этот вопрос необходимо потратить много времени на подготовку, что вряд-ли кто-то будет делать для ответа в форуме.
База данных Moodle не монолитна. Moodle - это конгломерат из нескольких сотен плагинов, у каждого из которых своя собственная БД, которая еще и меняется от версии к версии. То, что пишут в учебниках про консистентность СУБД плохо применимо к модульным системам. Поэтому то же самое каскадное удаление реализуется не через связи внутри БД, а через связи программного продукта.
В ответ на Maks Amirov

Re: Удаление всех курсов в moodle

от Alexandre Scherbyna -
Можно просто скрыть курсы от пользователей, не удаляя их. Но если решили таки удалять, то плагин moosh позволит автоматизировать и ускорить этот процесс.
В ответ на Maks Amirov

Re: Удаление всех курсов в moodle

от Alexandre Scherbyna -
Еще такой плагин есть https://moodle.org/plugins/tool_deletecourses. Специально для массового удаления курсов.
В ответ на Alexandre Scherbyna

Re: Удаление всех курсов в moodle

от Maks Amirov -
а можно без плагинов? в ручную в таблицах если!
В ответ на Maks Amirov

Re: Удаление всех курсов в moodle

от Alexandre Scherbyna -
Дело в том, что данные в таблице курсов связаны с множеством данных в других таблицах. Если удалять данные в этой таблице, то нужно удалять и все связанные с ними данные, иначе вы нарушаете целостность базы данных. Последствия могут быть катастрофическими. Поэтому и нужен плагин.
В ответ на Maks Amirov

Re: Удаление всех курсов в moodle

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

нельзя. 
если в курсах есть файлы, нужно чистить файлы на диске. Файлы на диске лежат по хэшам, выбрать нужные хэши для удаления можно только связав курсы с элементами курсов, а те в свою очередь с файлами запросами через несколько таблиц, так как файлы используются разными модулями. при этом зная хэш удалять файлы с диска можно только если файл с таким хэшем не используется в других местах.

В ответ на Maks Amirov

Re: Удаление всех курсов в moodle

от Dmitriy Makarov -
что мешает слить все в одну категорию и удалить категорию без сохранения содержимого? зачем велосипед изобретать? а для файлов просто уменьшить срок хранения в корзине.