Stockage de données avec suivi de modifications

a marqué ce sujet comme résolu.

Bonjour,

J’ai des données sous forme de tables. Pas forcément relationnelles. Des séries de mesures dans le temps, dans l’espaces, sur des échantillons, etc. Le genre de truc que les gens non avertis ont tendance à stocker dans des tableurs Excels géants et inutilisables. Le stockage est local. Ou sur un dépôt type nextcloud, github, etc, pour le partage, mais il n’est pas question de louer un serveur pour y accéder via une application web.

Et j’aurais besoin d’avoir un suivi des modifications.

Le premier truc qui me viens à l’esprit, ce serait un dépôt git et les données stockées comme csv à l’intérieur. Pour un projet sur lequel je suis seul à travailler, c’est probablement ce que je ferais.

Mais je me dis que si ça grandit, ça peut vite devenir problématiques. Il faudra imposer des conventions de nommage pour les fichiers, pour les en-têtes, etc. Et puis git, pour ce commun des mortels… je me fais pas trop d’illusion.

L’autre solution, serait un fichier sqlite. Après tout, c’est censé être fait pour ça. Par contre comment avoir un suivi des modifications avec ce type de base de données ? Il doit bien avoir des outils spécialisés ?

Donc mes questions en plus de cette dernière :

  • Mettons que vous n’ayez pas de contraintes techniques ou humaine. Quelle technologie utiliseriez vous ? Quels seraient les outils les plus adaptés ?
  • Avec les limitations présentées ci-dessus (pas de serveur disponible, pas de possibilité de déployer une application web, stockage locale et partage manuel), même question ?
  • Et même question en prenant en compte les considérations humaines : les contributeurs et utilisateurs ne sont pas forcément des fan d’informatique. Le genre de personne pour qui la ligne de commande semble être une technologie des années 90 et les bloqueurs de pub un truc de hacker russe ?

Si c’était pour moi. J’utiliserai certainement un fichier SQLite versionné.

Ça couvre également la deuxième question.

Pour le troisième cas, je dirais, un framacalc. Je l’utilise peu, mais je l’ai conseillé à des personnes qui voulaient se passer de la suite 360, elles en sont satisfaites.

+1 -0

Ah, donc git peut afficher les changement de certains fichiers binaires ! C’est bon à savoir. Il y a d’autres types de fichiers binaires avec lesquelles on peut faire ce genre de manip ? Je me doute que pour des images ça doit pas être très utile, mais des fichiers Word/Calc/7zip ?

Sinon, pour le framacalc, j’ai peur que ça ne soit pas très scalable. C’est juste du calc sur un serveur distant.

Merci pour ta réponse.

C’est bon à savoir. Il y a d’autres types de fichiers binaires avec lesquelles on peut faire ce genre de manip ?

tl,pl

Il faut configurer git pour utiliser la conversion en texte d’SQLite puis ensuite Git fait un diff normal. Ça se fait avec ces deux commandes:

$ git config diff.sqlite3.binary true
$ git config diff.sqlite3.textconv "echo .dump | sqlite3"

Alors attention, c’est pas natif de git mais de SQLite. Ce qui se passe:

  1. On demande à Git que pour les afficher les différences des fichiers .sqlite, on doit utiliser un configuration particulière: Ce qu’on fait en ajoutant dans le fichier .gitattributes (qui n’existe généralement pas).

    *.sqlite diff=sqlite3
    
  2. Dans la configuration de Git, on définit comment gérer ce cas. Globalement, ça passe pas une convertion en texte:

    [diff "sqlite3"]
         binary = true
         textconv = "echo .dump | sqlite3"
    

    Ensuite à partir de la version texte, git est capable de faire un différentiel normal.

+5 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte