[RESOLU] Faire des modifications directement dans la BDD

Tout content de mes beaux dashboards, je me suis mis à faire des tests avec mes différents devices, notamment des fake devices MQTT.
Un en particulier : un fake device qui reçoit depuis Node-red des données sur ma consommation électrique journalière.

Or ce device est sensé recevoir des données uniquement 1x / jour, ce qui me permet d’afficher un bel histogramme.

Sauf qu’en faisant mes tests, j’ai envoyer plusieurs fois des données aujourd’hui… ce qui m’a pété mon graphique !! Il était tout beau et maintenant il ressemble plus à rien.

Y a t’il un moyen de supprimer ces entrées « indésirables » de ma BDD ? (d’autant que je ne connaissais pas grand chose en SQLite… et encore moisn en DUCKDB ^^ )

Moi aussi, j’aurais des retouches à faire en base, pour corriger un relevé de production solaire qui a échoué 3 soirs de suite, et tout s’est cumulé le 4ème soir… Donc si il existe un outil pour parcourir la base DuckDB et modifier des valeurs, je prends :wink:

J’ai pas essayé mais dans la doc duckDb il propose un outils

2 « J'aime »

Sinon tu peux utiliser https://tableplus.com/ :slight_smile:

  • Met en pause ton instance Gladys (docker stop gladys)
  • Télécharge le fichier de DB DuckDB sur ta machine (avec un tool genre Cyberduck ou FileZilla ça marche très bien)
  • Ouvre le fichier dans TablePlus et supprime la ligne qui pose problème
  • Enregistre et quitte TablePlus
  • Re-transfère le fichier avec Cyberduck/FileZilla
  • Relance Gladys (docker restart gladys)

Attention à pas faire de bêtises sur le fichier ^^

2 « J'aime »

C’est plus simple que je l’imaginais :wink:

Oui on va éviter de faire un ratage , de toute façon lorsque je fais ça généralement je copie le fichier pour en avoir un de backup au cas où !

Merci pour vos conseils !

Par contre… je ne sais pas quel type de BDD choisir dans tableplus :thinking:

image

Normalement tu prends SQLite d’apres ce que j’ai lu sur Github. Mais ca n’a pas fonctionné chez moi (table vide ^^).

Pareil chez moi… Rien du tout.

J’ai essayé DBeaver, mais lorsque je vais chercher la table t_device_feature_state car j’imagine que c’est la bonne, alors les valeurs les plus récentes datent d’avant hier … :thinking: Comment cela se fait-il ?

Est-ce que cela correspond à 48h « exactement » ?

A confirmer avec @pierre-gilles, mais les datas sur cette timeline sont peut-être stockées en memoire puis transférées sur le fichier…

Je vais regarder !!

EDIT : Pas de stockage en « memory ».

De ce que je vois contrairement à la DB sql, lorsqu’on arrête gladys, le .duckdb.wal de duckdb reste et est plus récent que le .duckdb … Tu confirmes ? Quels sont les dates et heures des 2 fichiers pour toi ?

Pour ma part je n’ai qu’1h de données inaccessibles (qui correspond à la différence d’heure des fichiers - 9h52 vs 10h48) :
image

Vous êtes sur Windows ? Je suis sur MacOS et j’ai bien DuckDB dans TablePlus, mais visiblement les autres versions n’ont pas encore cette DB. Dans votre cas, il faut utiliser DBeaver :slight_smile:

Effectivement, il faut bien copier les 2 fichiers (.duckdb + .duckdb.wal), et bien-sûr les copier uniquement si Gladys est arrêté.

Yep pour moi ! MacOS souvent un coup d’avance ^^

C’est bien le cas, mais à l’arrêt de gladys (via docker stop gladys)comme dis plus haut, le .wal est toujours présent (contrairement à la db sql) et il y a 1h de « manque » (bien présent sur les courbes) dans gladys.

Bonjour @_Will_71 ,
J’utilise DBeaver à titre PRO (DB2, MS SQL, MuSQL, PgSQL …) et perso (SQLite) depuis un bon moment déjà et c’est un super outil. L’accès à la donnée étant faite de manière visuelle, sous forme de tables (façon tableur), on peut aisément modifier les données :slight_smile:
Belle journée,
Jean

D’habitude j’utilise tableplus mais sous linux ce n’est pas possible encore d’ouvrir une base duckdb.
Je testerais donc cette outil.

Oui, et si tu copie bien les deux fichiers et que tu ouvres le fichier sur DBeaver, normalement tu as toute la data non ?

:sweat_smile: non ^^ enfin -1h toujours. Et quand je déco la db dans DBeaver par contre cette fois le .wal est supprimé !^^

j ai essayer dbeaver community, mais petit pb, sur mon serveur gladys sous linux dbeaver voit la base mais me sort un access denied.
un dbeaver community sur un pc windows me voit les bases locales mais pas les bases en acces reseau

@Einstein8854 tu as bien dupliqué ou tout du moins arrêté Gladys avant d’y accéder ? C est une connexion unique. Tu ne peux pas y accéder en meme temps que Gladys tourne

Bon, décidémment les choses ne sont jamais simples :stuck_out_tongue_winking_eye:

J’ai récupéré mon fichier, j’ai trouvé des enregistrements qui m’interessaient, je les ai supprimés dans DBeaver.

Sauf que lorsque j’essayais de re-transférer ma BDD sur mon serveur… filezilla ne veut rien savoir et refuse d’écrire dans le répertoire.
J’ai donc dû momentanément changer les permissions du dossier gladysassistant pour pouvoir y copier mon fichier modifié.

C’est chose faite… et tout roule !!!

Merci encore à tous pour votre aide :slight_smile:

AVANT :
Capture d’écran du 2024-08-28 09-38-42

APRES :
Capture d’écran du 2024-08-29 09-44-01

2 « J'aime »

Ok, bizarre ^^ Désolé je n’utilise pas DBeaver, il faut chercher si il y a pas une subtilité.

Peut-être que la documentation DuckDB peut-être de bon conseil :

Bonjour @guim31

Cela relance une sujet qui avait été abordé relatif au démarrage d’un conteneur sous un utilisateur autre que « root » : on pourrait créer un sujet pour mettre en place de bonnes pratiques de conteneurisation ?

Belle journée,
Jean