Utilise Python plutôt que Postgres pour l’export des fichiers CSV
Problème
Jusqu’ici on déléguait à Postgres la génération d’un fichier CSV à partir
d’une table. L’inconvénient est qu’on n’a pas le contrôle des détails du
format utilisé. En particulier pour les tableaux (colonnes de type TEXT[]
),
qui sont sérialisées sous la forme "{foo,bar}"
, laquelle n’est pas
correctement parsée par Frictionless, ce qui rend impossible la validation
d’un fichier exporté par rapport au Table Schema associé.
cf. !467 (merged) et https://sentry.incubateur.net/organizations/betagouv/issues/51439/
Solution
On utilise maintenant la bibliothèque csv
pour générer le fichier
côté Python, ce qui nous donne plus de contrôle. Dans le cas des tableau,
on les sérialise maintenant en JSON avant de les écrire, ce qui colle
à ce qui est attendu par Frictionless.