Page 1 sur 1

Réduire base de données

Publié : 16 févr. 2025, 09:09
par banditos
Bonjour,
j'ai Domoticz sur Raspberry Pi 3B qui tourne depuis 2017 (je ne fais pas de MAJ).
Aussi, le fichier de sauvegarde Domoticz.db est à 79Mb.
Est-il possible d'éliminer des données inutiles?
Je souhaite garder que l'historique de certains capteurs, températures, énergie, compteur...

Merci

Re: Réduire base de données

Publié : 16 févr. 2025, 15:48
par Keros
Je ne connais pas de fonctions dans DomoticZ pour cela. Il faudrait faire ce nettoyage dans la base de données (en le faisant sur une copie au cas où cela se passerait mal).

Re: Réduire base de données

Publié : 16 févr. 2025, 23:09
par Flying Domotic
Une mauvaise réponse serait de supprimer et recréer à l'identique des dispositifs ayant un passé lourd, l'historique étant détruit en même temps que le dispositif.

Il y a également une possibilité en utilisant la primitive qui détruit un élément dans l'historique (celui caché derrière le <MAJ>-click sur un point). Ça pourrait être appelé par un script (python par exemple) en boucle sur un intervalle de date, et en boucle sur les dispositifs à supprimer.

Sinon, j'ai peur qu'il ne faille passer par un ménage par SQL dans les tables "_Calendar".

Re: Réduire base de données

Publié : 18 févr. 2025, 07:57
par lost
79MB pour 8 ans c'est pas délirant. A mon sens mieux vaut laisser ainsi et Domoticz gère plutôt bien de ce côté.

Re: Réduire base de données

Publié : 18 févr. 2025, 08:17
par banditos
Oui, je pense que tu as raison, mais faire une sauvegarde de la db directement par le navigateur devient trop long.
Il faut que j'automatise cette tâche avec un scrip, je vais bien trouver ça sur le fofo.

Merci pour les réponses

Re: Réduire base de données

Publié : 18 févr. 2025, 09:26
par jackslayter
moi j'ai ce petit script qui ce lance la nuit

Code : Tout sélectionner

#!/bin/bash
TIMESTAMP=`/bin/date +%Y-%m-%d_%H-%M`
IPDZ=192.168.1.2
BACKUPFILEDOMO="domoticz_$TIMESTAMP.db"
BACKUPFILEDOMOGZ="domoticz_db_$TIMESTAMP".tar.gz
/usr/bin/curl -s 'http://'$IPDZ'/backupdatabase.php' > /var/tmp/$BACKUPFILEDOMO
tar czf "/media/backup/domoticz/$BACKUPFILEDOMOGZ" /var/tmp/$BACKUPFILEDOMO
rm /var/tmp/"$BACKUPFILEDOMO"

Re: Réduire base de données

Publié : 02 mars 2025, 18:27
par Guigui
Moi j'utilise

Code : Tout sélectionner

#!/bin/bash
SERVICE=/usr/sbin/service
SQLITE3=/usr/bin/sqlite3
cd /home/pi/domoticz
#$SERVICE monit stop
#if [ $? == 0 ]; then
  $SERVICE domoticz.sh stop
  if [ $? == 0 ]; then
    if [ -f "/home/pi/domoticz/domoticz.new.db" ]; then
      rm /home/pi/domoticz/domoticz.new.db
    fi
    cp /home/pi/domoticz/domoticz.db /home/pi/domoticz/domoticz_OLD_OK_avant_CLEAN.db
    cat /home/pi/domoticz/compressdb.sql | $SQLITE3
    cp /home/pi/domoticz/domoticz.new.db /home/pi/domoticz/domoticz.db
    chown pi:pi /home/pi/domoticz/domoticz.db
    $SERVICE domoticz.sh start
#   $SERVICE monit start
  fi
#fi


avec

Code : Tout sélectionner

cat /home/pi/domoticz/compressdb.sql
.open /home/pi/domoticz/domoticz.db
delete from LightingLog where date <= date('now','start of month','-1 month','-1 day');
.clone domoticz.new.db
.quit
pi@Principal:~/domoticz $
AVANT
1833653 -rw-r--r-- 1 pi pi 80M 2 mars 18:25 domoticz.db

apres
1833653 -rw-r--r-- 1 pi pi 73M 2 mars 18:27 domoticz.db

Re: Réduire base de données

Publié : 02 mars 2025, 22:41
par f-d-m
Bonjour,
Perso je prends un backup quotidien conservé 1 semaine, et un backup hebdomadaire conservé 1 an .
Ceci sans arrêter Domoticz.

Il faut avoir installé le package sqlite3.

Code : Tout sélectionner

root@rpi3b:/usr/local/bin# cat dump.domoticz.daily
#!/bin/bash
cd /home/pi
sqlite3 domoticz/domoticz.db .dump | gzip > domoticz.dump.`date +%A`.sql.gz

root@rpi3b:/usr/local/bin# cat dump.domoticz.weekly
#!/bin/bash
cd /home/pi
sqlite3 domoticz/domoticz.db .dump | gzip > domoticz.dump.week.`date +%W`.sql.gz

Les deux sont lancés respectivement par un cron.daily et un cron.weekly

Le répertoire /home/pi fait lui-même l'objet d'un backup quotidien avec rsync vers une destination externe.


gzip fait gagner environ 90% de place.

Re: Réduire base de données

Publié : 03 mars 2025, 22:29
par klarf
Je trouves qu'avec le protocole 433MHz (rfxcom) on récolte pas mal de dispositif dès qu'on accepte des nouveaux appareils. Je supprime chaque fois les dispositifs qui ne m'appartient pas quand j'appareil un dispositif. Ça permet de gagner un petit peu.