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

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

Модератор: immortal

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

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

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

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

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
Сообщения: 717
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 117 раз
Поблагодарили: 113 раз

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

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

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

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

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

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
Сообщения: 717
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 117 раз
Поблагодарили: 113 раз

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

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

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

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

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

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

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
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 317 раз
Поблагодарили: 466 раз

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
Сообщения: 97
Зарегистрирован: Пт май 15, 2015 3:28 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

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

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

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

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

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

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