etalab / catalogage-donnees

Outil de catalogage de données développé par Etalab (service en production sur catalogue.data.gouv.fr)
https://catalogue.data.gouv.fr
GNU Affero General Public License v3.0
14 stars 3 forks source link

Import de catalogue #343

Closed johanricher closed 2 years ago

johanricher commented 2 years ago

User stories

Pour illustrer le besoin originel

Contexte

Ce ticket ne porte que sur l'import manuel par l'équipe technique de catalogue.data.gouv.fr d'un fichier catalogue préexistant dans un ministère, cas similaire à celui du MC (cf. #169). On ne procéderait à une telle opération qu'exceptionnellement et uniquement si un certain nombre de conditions et conséquences sont comprises et respectées :

Conditions :

Conséquences :

Critères d'acceptation

Ce ticket peut être fermé si les conditions suivantes sont réunies :

Implémentation

Autres ressources

On pointe vers des outils tiers pour aider les responsables d'organisation à créer un fichier catalogue valide par rapport à leur schéma :

johanricher commented 2 years ago

Florimond a documenté l'import tel qu'il se fait actuellement : https://github.com/etalab/catalogage-donnees/blob/master/docs/fr/outils-orgas.md

A priori ça répond à tous les critères d'acceptation que j'ai listés.

Merci !

Je vais m'en servir pour finaliser #359

florimondmanca commented 2 years ago

On a aussi fait la passation de l'outil en visio avec Bertrand.

@Volubyl À noter, seul ce critère ne me semble pas tout-à-fait rempli :

L'import écrase le contenu existant (si déjà créé)

Tel que je l'ai documenté, le processus fera qu'un jeu de données importé ne sera pas supprimé quand on relance un import. Il restera là et le "nouveau" jeu de données sera ajouté aussi - on aura donc des doublons (aux modifs du contenu CSV et de la façon d'importer près). En effet, le processus crée une fichier d'initdata dont les IDs de jeux de données sont à chaque fois nouveaux. Si on souhaite "écraser" l'ancien contenu, il faut en réalité supprimer les jeux de données de la DB avec DELETE FROM dataset WHERE organization_siret = '...'; et leurs objets associés (dataset_tag, dataset_dataformat).

johanricher commented 2 years ago

En vrai si par défaut le contenu n'est pas écrasé, c'est ok. Mon intention était de dire que la perte des données existantes était dans tous les cas possible et qu'on préparera les organisations à ce que ça puisse arriver (c'est à dire : on ne fait pas de backup et un probleme pendant l'import peut arriver et il vaut mieux l'anticiper). Le fait que leurs données existantes soit conservées est plutôt un "nice to have". J'ai changé le critère pour que ce soit reflète plus ça.