From 9cd1f19f89630a14ff0c025ff0dde10c4af70573 Mon Sep 17 00:00:00 2001 From: Mathieu Jaumotte Date: Wed, 15 Feb 2023 20:21:26 +0100 Subject: [PATCH] 3. complete table chill_main_civility --- sql/import.sql | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/sql/import.sql b/sql/import.sql index a8f3961..3c5b84e 100644 --- a/sql/import.sql +++ b/sql/import.sql @@ -6,27 +6,49 @@ -- * Avant de migrer (UP), il faut d'abord importer les codes postaux !!! -- - -- 1. Adjust Type cast for id columns ALTER TABLE import.personnes ALTER COLUMN id TYPE INTEGER USING (id::integer); ALTER TABLE import.periodes ALTER COLUMN id TYPE INTEGER USING (id::integer); --- 2. Copy date columns with right date type -ALTER TABLE import.personnes ADD column birthdate1 DATE; UPDATE import.personnes SET birthdate1 = to_date(birthdate,'DD/MM/YYYY') WHERE birthdate != ''; -ALTER TABLE import.personnes ADD column deathdate1 DATE; UPDATE import.personnes SET deathdate1 = to_date(deathdate,'DD/MM/YYYY') WHERE deathdate != ''; -ALTER TABLE import.personnes ADD column validfrom1 DATE; UPDATE import.personnes SET validfrom1 = to_date(validfrom,'DD/MM/YYYY') WHERE validfrom != ''; -ALTER TABLE import.personnes ADD column household_startdate1 DATE; UPDATE import.personnes SET household_startdate1 = to_date(household_startdate,'DD/MM/YYYY') WHERE household_startdate != ''; -ALTER TABLE import.periodes ADD column openingdate1 DATE; UPDATE import.periodes SET openingdate1 = to_date(openingdate::text,'DD/MM/YYYY') WHERE openingdate != ''; -ALTER TABLE import.periodes ADD column closingdate1 DATE; UPDATE import.periodes SET closingdate1 = to_date(closingdate,'DD/MM/YYYY') WHERE closingdate != ''; -- -- UP -- +-- 2. Copy date columns with right date type +ALTER TABLE import.personnes ADD COLUMN birthdate1 DATE; UPDATE import.personnes SET birthdate1 = to_date(birthdate,'DD/MM/YYYY') WHERE birthdate != ''; +ALTER TABLE import.personnes ADD COLUMN deathdate1 DATE; UPDATE import.personnes SET deathdate1 = to_date(deathdate,'DD/MM/YYYY') WHERE deathdate != ''; +ALTER TABLE import.personnes ADD COLUMN validfrom1 DATE; UPDATE import.personnes SET validfrom1 = to_date(validfrom,'DD/MM/YYYY') WHERE validfrom != ''; +ALTER TABLE import.personnes ADD COLUMN household_startdate1 DATE; UPDATE import.personnes SET household_startdate1 = to_date(household_startdate,'DD/MM/YYYY') WHERE household_startdate != ''; +ALTER TABLE import.periodes ADD COLUMN openingdate1 DATE; UPDATE import.periodes SET openingdate1 = to_date(openingdate::text,'DD/MM/YYYY') WHERE openingdate != ''; +ALTER TABLE import.periodes ADD COLUMN closingdate1 DATE; UPDATE import.periodes SET closingdate1 = to_date(closingdate,'DD/MM/YYYY') WHERE closingdate != ''; + +-- 3. Complete table Civility +ALTER TABLE import.choix_personnes ADD COLUMN civility1 JSONB; +UPDATE import.choix_personnes SET civility1=json_build_object('fr', trim(civility)) WHERE civility!=''; +WITH max_ordering AS ( SELECT MAX(ordering) as max_ordering FROM chill_main_civility ) +INSERT INTO chill_main_civility (id, name, abbreviation, active, ordering) + SELECT nextval('chill_main_civility_id_seq'), + t.civility1, t.civility1, true, + max_ordering.max_ordering + row_number() OVER () as ordering + FROM ( SELECT DISTINCT ON (civility) civility1 FROM import.choix_personnes WHERE civility1 IS NOT NULL ) t + CROSS JOIN max_ordering + WHERE NOT EXISTS ( SELECT 1 FROM chill_main_civility WHERE name::jsonb = t.civility1 ); + + + + + + -- -- DOWN -- +-- Undo 3. +DELETE FROM chill_main_civility cmc USING import.choix_personnes ip WHERE cmc.name::jsonb = ip.civility1::jsonb; +SELECT setval('chill_main_civility_id_seq', (SELECT max(id) FROM chill_main_civility)); +ALTER TABLE import.choix_personnes DROP column civility1; + -- Undo 2. ALTER TABLE import.personnes DROP column birthdate1; ALTER TABLE import.personnes DROP column deathdate1; @@ -36,6 +58,15 @@ ALTER TABLE import.periodes DROP column openingdate1; ALTER TABLE import.periodes DROP column closingdate1; +-- ------------- + +-- personnes choices_list: civility gender nationality countryofbirth country maritalstatus household_composition_type household_position +-- periodes choices_list: intensity referrer job acp_scopes acp_socialissues work_socialaction +-- tiers choices_list: civility kind profession category country + -- -- SELECT -- +SELECT DISTINCT civility FROM import.personnes; +SELECT * FROM import.periodes; +SELECT DISTINCT ON (civility) civility1 FROM import.personnes WHERE civility1 IS NOT NULL;