Не удаляются удаленные ресурсы
Версия 2.3.2-pl. Удаляю ресурсы — они выделяются красным, но при попытке почистить корзину ничего не происходит: ни в консоли браузера ни в админке ошибок никаких нет.
Версию движка обновить не могу — там древний хостинг, съехать с него тоже пока нельзя.
Версию движка обновить не могу — там древний хостинг, съехать с него тоже пока нельзя.
Комментарии: 25
DELETE FROM modx_site_content WHERE deleted = 1
Как последний вариант можно и так. Дополнительные поля так не удаляться же?
Нет, удалятся только ресурсы.
Тоже волновал подобный вопрос, но немного другого характера. Нужно удалять удалённые ресурсы вместе со всеми связями (тв-шками) не из админки.
Это возможно как-то сделать?
Или прийдётся удалять с двух таблиц?
Примерно так в цикле помеченных на удаление:
Это возможно как-то сделать?
Или прийдётся удалять с двух таблиц?
Примерно так в цикле помеченных на удаление:
DELETE FROM modx_site_tmplvar_contentvalues WHERE contentid = $id
DELETE FROM modx_site_content WHERE deleted = 1
а можно подробнее, у меня в корзине 10000 ресурсов (товаров) с фото и тв-шками, и мне это как-то удалить надо
Эх, ну раз других вариантов нет, удалю «в лоб». Всем спасибо.
ни в консоли браузера ни в админке ошибок никаких нетКакие тут еще могут быть варианты?
Версию движка обновить не могу — там древний хостинг, съехать с него тоже пока нельзя
Ну да, при таких условиях вариантов никаких.
Почему, есть. Через процессор «resource/remove». Тогда должны удалиться и зависимые объекты.
А можно подробнее как это сделать?
Думаю, так должно работать
Ну а лучше конечно разобраться с ошибкой очистки через корзину.
// Процессор очистки корзины
$response = $modx->runProcessor('resource/emptyrecyclebin');
if ($response->isError()) $response->getMessage();
Выполнять в специальном сниппете или Console.Ну а лучше конечно разобраться с ошибкой очистки через корзину.
Спасибо большое! Проверю при случае. Оказалось во всех удаленных ресурсов не было дополнительных полей)
Удаленные ресурсы также не должны быть в группах ресурсов.
Спасибо! Но…
Процессор очистки корзины виснет, т.к. ресурсов около 100 тыс., а удалённых 15 тыс. Видно ему просто не хватает памяти для очистки всего.
Прийдётся видно вручную.
Значит мне, я полагаю, нужно:
Процессор очистки корзины виснет, т.к. ресурсов около 100 тыс., а удалённых 15 тыс. Видно ему просто не хватает памяти для очистки всего.
Прийдётся видно вручную.
Значит мне, я полагаю, нужно:
1. удалить из modx_site_content WHERE deleted = 1
2. удалить из таблицы тв-шек modx_site_tmplvar_contentvalues все записи с id удалённой записи
3. удалить из таблицы групп ресурсов (что за таблица)?
4. откуда-то ещё удалить..?
Либо многократно запускать очистку корзины вручную. Для 15000 ресурсов не так уж много раз должно потребоваться запускать очистку.
Уже запускал до этого многократно, удаляя по 2-3 тысячи за раз. И глюкнула корзина. Может потому что у ресуросов много тв-шек было и он их всех обрабатывал…
Смотри логи ошибок сервера. Наверняка 500 появляется, логи помогут ее отследить и исправить.
Обновление движка не помогло.
Логи выводят что-то похожее:
И самое интересное, что корзина сломалась. Мне кажется, пока не перезагрузят сервер, корзина не отморозится…
Видно прийдётся вручную удалять строки из базы ресурсов и тв-шек…
Спасибо за помощь!
Логи выводят что-то похожее:
2016/01/19 17:24:33 [error] 25478#0: *38527366 FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 72 bytes) in /home/s****/www/core/components/console/processors/exec.class.php(15) : eval()'d code on line 26" while reading response header from upstream, client: **.***.**.**, server: s****.h*.modhost.pro, request: "POST /manager/components/console/connectors/console.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:*****", host: "s****.h*.modhost.pro", referrer: "http://s****.h*.modhost.pro/manager/?a=18"
И да, сайт на modhost.pro на тарифе «Максимальный». Видно ему всё-же максимальной памяти не хватает чтобы очистить корзину… И самое интересное, что корзина сломалась. Мне кажется, пока не перезагрузят сервер, корзина не отморозится…
Видно прийдётся вручную удалять строки из базы ресурсов и тв-шек…
Спасибо за помощь!
Верно, переполнение памяти в чистом виде.
Только вот как её очистить, память эту, не перезагружая сервер? До этого очистка корзины срабатывала через раз. сейчас даже если удалить один-единственный ресурс — очистка не запускается как замороженная…
Боюсь, даже если удалю всю базу ресурос и тв-шек и по-новой буду строить сайт, очистка не отвиснет сама по себе, как будтно где-то в фоне запущена…
Боюсь, даже если удалю всю базу ресурос и тв-шек и по-новой буду строить сайт, очистка не отвиснет сама по себе, как будтно где-то в фоне запущена…
Попробуй очистить кэш для проверки. Скорее всего, тоже вылетит ошибка переполнения.
Очищать память специально не нужно: она выделяется под каждое выполнение скрипта в отдельности.
Очищать память специально не нужно: она выделяется под каждое выполнение скрипта в отдельности.
Спасибо за помощь!
У меня были отмечены для удаления те 15000 ресурсов (при наличии ещё 100 тысяч неудалённых) и корзина видно захлёбывалась. =)
Удалил вручную через Console из таблицы контента и тв-шек те что были помечены на удаление — и вуаля! Корзина отвисла и работает исправно… ))
Видно скармливать ей нужно небольшими порциями, чтобы не зажралась…
На всякий случай сохранил себе набросок кода в Console для ручного удаления — думаю ещё понадобится не раз…
У меня были отмечены для удаления те 15000 ресурсов (при наличии ещё 100 тысяч неудалённых) и корзина видно захлёбывалась. =)
Удалил вручную через Console из таблицы контента и тв-шек те что были помечены на удаление — и вуаля! Корзина отвисла и работает исправно… ))
Видно скармливать ей нужно небольшими порциями, чтобы не зажралась…
На всякий случай сохранил себе набросок кода в Console для ручного удаления — думаю ещё понадобится не раз…
со мной поделись :-) тоже надо
4. откуда-то ещё удалить..?Ещё могут быть установлены компоненты, которые хранят ссылку на ресурс.
Попробуй создать плагин на событие OnBeforeEmptyTrash
// Удаляет ресурсы порцией по 1000, т.е. нажать на корзину нужно будет 15 раз.
$resources = array_slice($resources , 0, 1000);
Теоретически должно сработать.
Классно, возьму на вооружение, но почему-то вообще зависло всё, уже полдня не реагирует ни процессор очистки корзины ни сама корзина. Просто до этого я удалял большими партиями по 2000 штук, удалял раз 7, видно накрылось что-то… Ничего не помогает его отморозить — попробую движок обновить.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.