Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Import de catalogue #343

Closed
johanricher opened this issue Jul 12, 2022 · 3 comments
Closed

Import de catalogue #343

johanricher opened this issue Jul 12, 2022 · 3 comments

Comments

@johanricher
Copy link
Member

johanricher commented Jul 12, 2022

User stories

Pour illustrer le besoin originel

  • ETQ responsable d'organisation, j'ai déjà créé un fichier catalogue en dehors de catalogue.data.gouv.fr et j'ai besoin d'importer son contenu sur catalogue.data.gouv.fr afin de ne pas le recréer à la main.

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 :

  • Il faut qu'un catalogue ait déjà été créé et donc qu'un schéma existe (au format Table Schema) cf Création d'un catalogue #284
  • Il faut que le fichier catalogue à importer soit donné à l'équipe technique au format CSV et soit valide par rapport au schéma du catalogue créé sur catalogue.data.gouv.fr

Conséquences :

  • Si le catalogue sur catalogue.data.gouv.fr a déjà du contenu, il sera écrasé par l'import (perdu)

Critères d'acceptation

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

  • On peut importer, dans un catalogue existant sur l'instance prod, le contenu d'un fichier CSV conforme au schéma
  • Peut être fait par l'équipe technique
  • Pas d'UI nécessaire.
  • Expérimental, n'a pas vocation à être pérenne, peut être casser et changer selon l'évolution des besoin.
  • Le contenu existant peut être écrasé (si déjà créé)
  • Documenté pour que n'importe quel nouveau membre de l'équipe technique puisse se l'approprier.

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
Copy link
Member Author

johanricher commented Oct 30, 2022

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
Copy link
Collaborator

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
Copy link
Member Author

johanricher commented Nov 2, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants