Устаревшее хранилище. Что это?

Устаревшее хранилище. Что это?

от Владимир Дмитриев -
Количество ответов: 4

Извините, что поднимаю старую тему.

Наконец-то обновились с 1.9 сразу до 3.02. Все прошло хорошо, проблем нет, все работает.

Все папки из файлов курсов хэшировались и ушли в filedir. Т.е. сейчас нет дублирования: Старые файлы+новые файлы. Так зачем же оно нужно это Устаревшее хранилище? Если все равно все картинки, файлы и др. ищутся в новой системе и все работает.

В настройках сайта я его отключил, но в старых курсах оно продолжает присутствовать. Т.е. преподаватели могут продолжить им пользоваться. Чем это грозит, можно ли его отключить сразу на всех курсах, как запретить включать его вновь?


В ответ на Владимир Дмитриев

Re: Устаревшее хранилище. Что это?

от Vadim Tabunshchik -
Изображение пользователя Developers
Все папки из файлов курсов хэшировались и ушли в filedir.…Так зачем же оно нужно это Устаревшее хранилище?

Это вам повезло. В некоторых случаях там остаются файлы, которые используются в курсах, но не переносятся в filedir. Случаи разные бывают © улыбаюсь, для этого и оставили устаревшее хранилище.

В настройках сайта я его отключил, но в старых курсах оно продолжает присутствовать.

Правильно, отключив уст. хранилище на уровне сайта, вы запретили пользователям загружать в него файлы, но оно все равно будет доступно в курсах, чтобы оставались работоспособными ресурсы, в кот. всё еще используются файлы из этого хранилища. Устаревшие файлы передаются скриптом file.php, а не pluginfile.php. Зная это, можно отследить, где используются файлы из уст. хранилища.

Если вы уверены, что Уст. хранилище не нужно вообще, выполните запрос к БД в phpmyadmin:

UPDATE mdl_course c SET c.legacyfiles = 0
WHERE c.legacyfiles > 0

Это отключит уст. хранилище во всех курсах и, кроме того, скроет параметр вкл/выкл "Файлы курса (устаревшее хранилище)" в настройках курса.

ЗЫ:

обновились с 1.9 сразу до 3.02

Это как? Вообще без установки промежуточных версий? Note: You can only upgrade to Moodle 3.0 from Moodle 2.2 or later.

Проверка окружения не дала бы обновиться с 1.9 сразу до 3.0.х

В ответ на Vadim Tabunshchik

Re: Устаревшее хранилище. Что это?

от Владимир Дмитриев -

Спасибо, Вадим.

Конечно вы правы, обновлялся я через промежуточные версии.

Я решил, по вашему совету, отключить на курсах устаревшее хранилище, если у преподавателей возникнут сложности, они меня найдут улыбаюсь

А неужели нет какой-то утилиты, которая нашла бы все оставшиеся файлы в У.Х., хэшировала и сделала соответствующие записи в БД?

В ответ на Владимир Дмитриев

Re: Устаревшее хранилище. Что это?

от Vadim Tabunshchik -
Изображение пользователя Developers
А неужели нет какой-то утилиты, которая нашла бы все оставшиеся файлы в У.Х., хэшировала и сделала соответствующие записи в БД?

Зачем? Если ресурсы создавались средствами moodle, файлы прикреплялись (картинки вставлялись) с использованием кнопок встроенного редактора, то все файлы будут корректно перенесены в новый формат хранения.

Проблемы возникают, когда, например, в ресурсах типа "Файл" используются HTML-файлы с абсолютными ссылками, а не относительными. Или в тексте сообщения форума есть прямая ссылка на файл, а "Вложение" не используется.

В ответ на Владимир Дмитриев

Re: Устаревшее хранилище. Что это?

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

процедура обновления уже сама это сделала. прохэшировала файлы и разложила их по модулям. Но проблема в том, что файлы представлялись по разному в новой и старой версии moodle. В новой версии moodle файлы должны быть привязаны к конкретному элементу курса. В старой - просто лежали россыпью. Чтобы куда-то девать файлы из этой кучи, на которые не ссылаются никакие элементы курса и было создано устаревшее хранилище.

Вот пример. У вас html-учебник, состоящий из общей папки images и файлов chapter1.html и chapter2.html для каждой из глав. В старой версии moodle вы клали всё в общее хранилище и делали два элемента курса, ссылающиеся на html-файлы. В новой версии правильно создать два элемента курса, положить в оба папку images целиком, и по одному html-файлу. Но moodle не знает о таких нюансах. Поэтому при обновлении images переежает в устаревшее хранилище, а в элементах курса остаётся по "голому" html-файлу. Если в этой ситуации вы отключите устаревшее хранилище, то останетесь без картинок в учебнике.

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