Add another method to prepare the import tables
This commit is contained in:
parent
9c90e5ac07
commit
db52c72d22
21
README.md
21
README.md
@ -14,8 +14,8 @@ Le client a rempli le canevas. Une relecture du fichier est toujours nécessaire
|
|||||||
Le fichier se compose de plusieurs feuilles, chacune doit être sauvée au format csv.
|
Le fichier se compose de plusieurs feuilles, chacune doit être sauvée au format csv.
|
||||||
|
|
||||||
Pour préparer les fichiers on va:
|
Pour préparer les fichiers on va:
|
||||||
- nettoyer le fichier pour ne laisser en étiquette que les noms de colonnes en anglais.
|
- nettoyer le fichier pour ne laisser en étiquette que les noms de colonnes en anglais. Il faut donc supprimer les 4 premières lignes de chaque fichier + la 6ème ligne.
|
||||||
- ajouter une colonne de contôle en fin de ligne, par sécurité. Par exemple une colonne 'endcol' qui contient pour chaque cellule 'endrow'.
|
(- ajouter une colonne de contôle en fin de ligne, par sécurité. Par exemple une colonne 'endcol' qui contient pour chaque cellule 'endrow'.)
|
||||||
- ajouter les doublequote lors de la sauvegarde du csv,
|
- ajouter les doublequote lors de la sauvegarde du csv,
|
||||||
- enlever tous les line breaks et caractères spéciaux.
|
- enlever tous les line breaks et caractères spéciaux.
|
||||||
|
|
||||||
@ -61,6 +61,23 @@ La meilleure méthode pour moi est de réaliser cette étape en local avec phpst
|
|||||||
- export data > extractor: SQL-insert-multirow > copy to clipboard
|
- export data > extractor: SQL-insert-multirow > copy to clipboard
|
||||||
- coller les données dans `<client>-data.sql`
|
- coller les données dans `<client>-data.sql`
|
||||||
|
|
||||||
|
### 2.b Avec des fonctions Postgresql
|
||||||
|
|
||||||
|
On peut aussi utiliser la fonction `\copy` de psql pour charger un fichier csv dans les tables temporaires du schéma "import".
|
||||||
|
|
||||||
|
Tout d'abord, les tables du schéma "import" doivent être préparées avec le script `prepare-import.sql`.
|
||||||
|
|
||||||
|
Puis on importe les 4 fichiers csv.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
psql chill-import
|
||||||
|
chill-import=# \copy "import".choix_personnes FROM 'choix_personnes.csv' DELIMITER ',' CSV HEADER
|
||||||
|
chill-import=# \copy "import".personnes FROM 'personnes.csv' DELIMITER ',' CSV HEADER
|
||||||
|
chill-import=# \copy "import".choix_periodes FROM 'choix_periodes.csv' DELIMITER ',' CSV HEADER
|
||||||
|
chill-import=# \copy "import".periodes FROM 'periodes.csv' DELIMITER ',' CSV HEADER
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## 3. Import du schéma 'import' sur le serveur (safran)
|
## 3. Import du schéma 'import' sur le serveur (safran)
|
||||||
|
|
||||||
- transférer le fichier `<client>-data.sql` sur le serveur (avec scp):
|
- transférer le fichier `<client>-data.sql` sur le serveur (avec scp):
|
||||||
|
79
sql/prepare-import.sql
Normal file
79
sql/prepare-import.sql
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
CREATE TABLE "import".choix_personnes (
|
||||||
|
civility varchar(50) NULL,
|
||||||
|
gender varchar(50) NULL,
|
||||||
|
maritalstatus varchar(50) NULL,
|
||||||
|
country varchar(50) NULL,
|
||||||
|
household_composition_type varchar(50) NULL,
|
||||||
|
household_position varchar(50) NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "import".personnes (
|
||||||
|
civility varchar(50) NULL,
|
||||||
|
lastname varchar(50) NULL,
|
||||||
|
firstname varchar(50) NULL,
|
||||||
|
gender varchar(50) NULL,
|
||||||
|
gendercomment varchar(50) NULL,
|
||||||
|
nationality varchar(50) NULL,
|
||||||
|
memo varchar(50) NULL,
|
||||||
|
birthdate varchar(50) NULL,
|
||||||
|
place_of_birth varchar(50) NULL,
|
||||||
|
countryofbirth varchar(50) NULL,
|
||||||
|
deathdate varchar(50) NULL,
|
||||||
|
email varchar(50) NULL,
|
||||||
|
phonenumber varchar(50) NULL,
|
||||||
|
mobilenumber varchar(50) NULL,
|
||||||
|
contactinfo varchar(50) NULL,
|
||||||
|
street varchar(50) NULL,
|
||||||
|
extra varchar(50) NULL,
|
||||||
|
streetnumber varchar(50) NULL,
|
||||||
|
postcode varchar(50) NULL,
|
||||||
|
country varchar(50) NULL,
|
||||||
|
validfrom varchar(50) NULL,
|
||||||
|
maritalstatus varchar(50) NULL,
|
||||||
|
maritalstatuscomment varchar(50) NULL,
|
||||||
|
numberofchildren integer NULL,
|
||||||
|
household_composition_type varchar(50) NULL,
|
||||||
|
household_position varchar(50) NULL,
|
||||||
|
household_startdate varchar(50) NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "import".choix_periodes (
|
||||||
|
closingmotive varchar(50) NULL,
|
||||||
|
origin varchar(50) NULL,
|
||||||
|
acp_scopes varchar(50) NULL,
|
||||||
|
job varchar(50) NULL,
|
||||||
|
"user" varchar(50) NULL,
|
||||||
|
parent varchar(50) NULL,
|
||||||
|
enfant varchar(50) NULL,
|
||||||
|
acp_social_issues varchar(50) NULL,
|
||||||
|
work_social_action varchar(50) NULL,
|
||||||
|
street varchar(128) NULL,
|
||||||
|
extra varchar(50) NULL,
|
||||||
|
streetnumber integer NULL,
|
||||||
|
postcode integer NULL,
|
||||||
|
country varchar(50) NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE "import".periodes (
|
||||||
|
nom varchar(50) NULL,
|
||||||
|
openingdate varchar(50) NULL,
|
||||||
|
closingdate varchar(50) NULL,
|
||||||
|
closingmotive varchar(50) NULL,
|
||||||
|
origin varchar(50) NULL,
|
||||||
|
remark integer NULL,
|
||||||
|
intensity varchar(50) NULL,
|
||||||
|
referrer varchar(50) NULL,
|
||||||
|
job varchar(50) NULL,
|
||||||
|
acp_scopes varchar(50) NULL,
|
||||||
|
"address" varchar(50) NULL,
|
||||||
|
personlocation varchar(50) NULL,
|
||||||
|
addresslocation varchar(50) NULL,
|
||||||
|
acp_socialissues varchar(50) NULL,
|
||||||
|
work_socialaction varchar(50) NULL,
|
||||||
|
comment1_content varchar(50) NULL,
|
||||||
|
comment2_content varchar(50) NULL,
|
||||||
|
comment3_content varchar(50) NULL,
|
||||||
|
comment4_content varchar(50) NULL,
|
||||||
|
comment5_content varchar(50) NULL
|
||||||
|
);
|
Loading…
Reference in New Issue
Block a user