Gramps : rendre toutes les notes privées et créer une étiquette sans couleur via SQLite

Autre intervention dans la base SQLite de Gramps pour me permettre de gagner du temps en passant toutes mes notes en "privé" d’un coup (en lot). Ce n'est actuellement pas faisable dans l'interface graphique. Je repasse ensuite manuellement les notes en "non privée" dans l'interface graphique de Gramps au fur et à mesure de leur relecture et de leur correction.

Comme toujours avec ce type de modification, il faut travailler sur une copie de sauvegarde et fermer Gramps avant toute intervention.

Passer toutes les notes en privé

  • Fermer Gramps.
  • Aller dans le dossier de la base Gramps, en général dans ~/.gramps/grampsdb/ (version native Linux) ou ~/.var/app/org.gramps_project.Gramps/data/gramps/grampsdb\ (version Flatpak Linux), puis ouvrir le sous-dossier correspondant à l’arbre concerné.
  • Faire une copie de sauvegarde du fichier sqlite.db.
  • Ouvrir sqlite.db avec DB Browser for SQLite.
  • Aller dans l’onglet Exécuter le SQL.
  • Lancer la requête suivante :
UPDATE note 
SET json_data = json_set(json_data, '$.private', json('true')),
    private = 1;
  • Pour information : cette requête modifie à la fois la colonne private et le champ private contenu dans le JSON stocké dans json_data. La fonction native json_set() de SQLite met à jour proprement la valeur dans le JSON sans altérer le reste du contenu.

  • Enregistrer les modifications.

  • Fermer DB Browser for SQLite.

  • Relancer Gramps.

Remarque

Le code SQL et la formulation technique de cette méthode ont été préparés avec l’aide d’un outil d’IA : Perplexity, avec son modèle par défaut.

Article précédent