Очистка истории

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Jilber
Сообщения: 684
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 113 раз
Поблагодарили: 107 раз

Очистка истории

Сообщение Jilber » Вт сен 07, 2021 4:50 pm

Подскажите, как с помощью кода удалить историю какого-то конкретного свойства объекта ? И заодно второй вопрос: выставляю нужное мне время хранения истории свойства, но через какое-то время обнаруживаю, что время снова сбивается на 365 дней. При этом Majordomo вроде бы не обновляется каждую неделю (у меня не альфа).
СпойлерПоказать
История.jpg
История.jpg (49.56 КБ) 1997 просмотров
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Очистка истории

Сообщение Chainik » Вт сен 07, 2021 5:49 pm

Тут нужен прямой запрос к БД.
Сам пока не научился, но примеры на форуме есть: https://mjdm.ru/forum/viewtopic.php?f=2 ... 9&start=54
За это сообщение автора Chainik поблагодарил:
Jilber (Вт сен 07, 2021 6:49 pm)
Рейтинг: 1.16%
Jilber
Сообщения: 684
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 113 раз
Поблагодарили: 107 раз

Re: Очистка истории

Сообщение Jilber » Вт сен 07, 2021 6:08 pm

Я так понимаю достаточно вручную посмотреть в БД ID нужного свойства и подставить его в следующий код вместо "$pvalue_id" ? Если само это свойство не удалять его ID ведь никогда не поменяется и нет опасности стереть из базы что-то другое ?

Код: Выделить всё

SQLExec("DELETE FROM phistory WHERE  VALUE_ID = $pvalue_id");
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Очистка истории

Сообщение fandaymon » Вт сен 07, 2021 6:18 pm

Jilber писал(а):
Вт сен 07, 2021 6:08 pm
Я так понимаю достаточно вручную посмотреть в БД ID нужного свойства и подставить его в следующий код вместо "$pvalue_id" ? Если само это свойство не удалять его ID ведь никогда не поменяется и нет опасности стереть из базы что-то другое ?

Код: Выделить всё

SQLExec("DELETE FROM phistory WHERE  VALUE_ID = $pvalue_id");
При нормальной работе даже если и стереть свойство, то id это автоинкремент (т.е.оно всё время возрастает) и у новых свойств id будут другие

А ещё можно просто оптимайзером историю подчищать, без запросов к базе
За это сообщение автора fandaymon поблагодарил:
Jilber (Вт сен 07, 2021 6:49 pm)
Рейтинг: 1.16%
Jilber
Сообщения: 684
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 113 раз
Поблагодарили: 107 раз

Re: Очистка истории

Сообщение Jilber » Вт сен 07, 2021 6:45 pm

Такое впечатление, что в Оптимайзере не сохраняется если пункт "хранить историю, дней" ставишь равным 0.
СпойлерПоказать
Оптимайзер.jpg
Оптимайзер.jpg (36.08 КБ) 1980 просмотров
Оптимайзер-2.jpg
Оптимайзер-2.jpg (25.28 КБ) 1980 просмотров
У другого свойства стоит 180 дней и видно, что сохранилось (причём, как я писал в первом сообщении, периодически само сбивается обратно на 365 дней).
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Очистка истории

Сообщение fandaymon » Вт сен 07, 2021 8:40 pm

Jilber писал(а):
Вт сен 07, 2021 6:45 pm
Такое впечатление, что в Оптимайзере не сохраняется если пункт "хранить историю, дней" ставишь равным 0.
СпойлерПоказать
Оптимайзер.jpg
Оптимайзер-2.jpg
У другого свойства стоит 180 дней и видно, что сохранилось (причём, как я писал в первом сообщении, периодически само сбивается обратно на 365 дней).
Просто 0 в оптимизаторе означает хранить бесконечно
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Очистка истории

Сообщение Logrus » Ср сен 08, 2021 5:27 am

Jilber писал(а):
Вт сен 07, 2021 6:08 pm
Я так понимаю достаточно вручную посмотреть в БД ID нужного свойства и подставить его в следующий код вместо "$pvalue_id" ? Если само это свойство не удалять его ID ведь никогда не поменяется и нет опасности стереть из базы что-то другое ?

Код: Выделить всё

SQLExec("DELETE FROM phistory WHERE  VALUE_ID = $pvalue_id");
$value_id = (int)getHistoryValueId($ot . '.' . $history_value); //имя об!екта и имя свтйства вызвавшего метод есть в параметрах, т.е. можно получить универсально в методе
но если включена сепарация истории, то нужно получить и имя таблички, что впрочем есть в ПУ счетчика
и выборку для удаления как бы по времени тоже ограничить
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Очистка истории

Сообщение Logrus » Ср сен 08, 2021 5:30 am

Jilber писал(а):
Вт сен 07, 2021 6:45 pm
Такое впечатление, что в Оптимайзере не сохраняется если пункт "хранить историю, дней" ставишь равным 0.
СпойлерПоказать
Оптимайзер.jpg
Оптимайзер-2.jpg
У другого свойства стоит 180 дней и видно, что сохранилось (причём, как я писал в первом сообщении, периодически само сбивается обратно на 365 дней).
это ПУ, детка :lol:
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
OlegM
Сообщения: 96
Зарегистрирован: Пт май 15, 2015 3:28 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: Очистка истории

Сообщение OlegM » Вт ноя 21, 2023 8:00 pm

Добрый день. Не нашел другой темы по истории свойства объекта. Напишу здесь. Не знаю баг это или так задумано, но не понятно зачем по 2 раза записываются одинаковые подряд значения? И второе. Не правильно происходит оптимизация истории. Например есть две подряд записи с одним и тем-же значением. Если произвести оптимизацию, то удалится не второй показатель (который не нужен), а первый. Т.е. получается после оптимизации график показывает неверную историю с разницей второй одинаковой записи. Я так понимаю эти вопросы конкретно к Сергею, если он тут появляется.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Очистка истории

Сообщение Chainik » Ср ноя 22, 2023 4:57 pm

По первому вопросу (почему одинаковые значения записываются по 2 раза подряд), если я правильно понимаю, чтобы графики красивее выглядели. Например, фиксируется включение/выключение насоса. Сейчас на графике это выглядит красиво. А без дублирующего значения смотрелось бы не очень.
CropImage.png
CropImage.png (2.14 КБ) 424 просмотра
Ответить