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

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

Модератор: immortal

Jilber
Сообщения: 719
Зарегистрирован: Ср май 03, 2017 7:41 pm

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

Сообщение Jilber »

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

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

Сообщение Chainik »

Тут нужен прямой запрос к БД.
Сам пока не научился, но примеры на форуме есть: https://mjdm.ru/forum/viewtopic.php?f=2 ... 9&start=54
Jilber
Сообщения: 719
Зарегистрирован: Ср май 03, 2017 7:41 pm

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

Сообщение Jilber »

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

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

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

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

Сообщение fandaymon »

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

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

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

А ещё можно просто оптимайзером историю подчищать, без запросов к базе
Jilber
Сообщения: 719
Зарегистрирован: Ср май 03, 2017 7:41 pm

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

Сообщение Jilber »

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

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

Сообщение fandaymon »

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

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

Сообщение Logrus »

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

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

Сообщение Logrus »

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

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

Сообщение OlegM »

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

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

Сообщение Chainik »

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