Aller au contenu principal

Import des pays

Lors de l'installation du backend, l'import des pays depuis un export provenant du SI permet de ne pas avoir à saisir le contenu de la nomenclature pays.

Cette documentation donne plusieurs moyen de procéder à cet import mais le plus important à prendre en compte est :

  • Le format à respecter pour l'ordre des champs est le suivant : id,libelle,is_valid,code_alpha_2,code_alpha_3
  • Il faut penser à mettre à jour la séquence qui gère les id à l'issue de l'import avec la commande suivante SELECT setval('pays_id_seq', (SELECT id FROM pays ORDER BY id desc LIMIT 1), true);
Important

Un fichier csv correctement formaté est disponible dans les sources à l'emplacement suivant : src/main/resources/db-import/pays.csv

Format du CSV

id,libelle,is_valid,code_alpha_2,code_alpha_3
1,France,true,FR,FRA
2,Italie,true,IT,ITA
...

Import depuis le serveur

Import d'un fichier CSV depuis un prompt SQL

Déposer le fichier sur le serveur de db (ici dans '/tmp/pays.csv' )

COPY pays(id,libelle,is_valid,code_alpha_2,code_alpha_3)
FROM '/tmp/pays.csv'
DELIMITER ','
CSV HEADER;
-- Set sequence
SELECT setval('pays_id_seq', (SELECT id FROM pays ORDER BY id desc LIMIT 1), true);

Import via STDIN

echo "id,libelle,is_valid,code_alpha_2,code_alpha_3
1,France,true,FR,FRA
2,Italie,true,IT,ITA" | psql -U vasco -c "COPY public.pays(id,libelle,is_valid,code_alpha_2,code_alpha_3)
FROM STDIN
DELIMITER ','
CSV HEADER;";psql -U vasco -c "SELECT setval('pays_id_seq', (SELECT id FROM pays ORDER BY id desc LIMIT 1), true);"

Import d'un CSV depuis une application

De nombreuses applications permettent un import (PgAdmin, IntelliJ)

Caractéristique du fichier

  • Première ligne contient les en-têtes de colonne (option header)
  • Encodage UTF-8

Configuration du fichier

Paramétrage des colonnes

Assurez vous que chaque colonne correspond bien au champ

Mise à jour de la séquence

A ne pas oublier.

SELECT setval('pays_id_seq', (SELECT id FROM pays ORDER BY id desc LIMIT 1), true);