Как удалить тикеты программно

Возникла задача массово удалить полностью все тикеты ( 13000+ ) с сайта.
Пока получилось их только обозначить как удаленные и при попытке почистить корзину, выдает ошибку и ни в какую не желает их удалять. По одиночке все ок, но вот массово, это жесть, чугун, цирконий… в общем никак )).

В логах при попытке очистки корзины:
[2019-01-18 11:26:19] (ERROR @ /home/radio/www/bazcore/xpdo/om/xpdoobject.class.php : 1452) Error 23000 executing statement:
INSERT INTO `IT64j4a2xBPy_tickets_totals` (`tickets`, `comments`, `views`, `stars`, `rating`, `rating_plus`, `rating_minus`) VALUES (0, 0, 0, 0, 0, 0, 0)
Array
(
    [0] => 23000
    [1] => 1062
    [2] => Duplicate entry '0-' for key 'PRIMARY'
)
P.S.
если через пол года увидите статус этой заметки «выполнен», значит удалял вручную. Спасите!!! )))
Юрий Фомин
18 января 2019, 14:29
modx.pro
1 261
0

Комментарии: 6

Михаил
18 января 2019, 15:49
0
Есть схема, можно так:
$tickets = $modx->getIterator('Ticket', array('deleted' => 1));
foreach($tickets as $ticket){
    $ticket->remove();
}
Второй вариант использовать процессор, тогда удалятся и комментарии и прочее. Выбираешь все тикеты и потом через процессор прогоняешь
    tolanych
    18 января 2019, 21:59
    0
    Попробуй перед очисткой корзины в файле /core/components/tickets/model/tickets/ticket.class.php в методе remove
    со строчки 667 закомментировать этот блок

    if ($total = $this->xpdo->getObject('TicketTotal', array('id' => $this->parent, 'class' => 'TicketsSection'))) {
        $total->set('children', $total->get('children') - 1);
        $total->save();
    }
      vectorserver
      21 января 2019, 13:23
      0
      Можно через PhpMyAdmin выполнить SQL Query
      TRUNCATE TABLE tablename
        Юрий Фомин
        21 января 2019, 19:45
        0
        Спасибо за совет, но это не лучший вариант, так как в других таблицах остается инфа о тикетах. Все равно что избавиться от старого дома, а хлам из него оставить.
          vectorserver
          21 января 2019, 20:29
          0
          А религия не позволяет по другим таблицам пройтись?
            Юрий Фомин
            25 января 2019, 10:36
            0
            На сколько я понимаю, «религия» программиста в том, чтобы работал код, а не он. Потому и спрашиваю тут. Но спасибо за участие )).
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6