Compare commits
9 Commits
cadcddddb5
...
59daee4790
Author | SHA1 | Date | |
---|---|---|---|
59daee4790 | |||
6900d66206 | |||
f513dd1b36 | |||
67d020d322 | |||
477565f6e1 | |||
e569d77bd2 | |||
0ab77b77ed | |||
307cfcbe74 | |||
081ce76085 |
123
sql/import.sql
123
sql/import.sql
@ -236,11 +236,6 @@ DO $$
|
||||
--SELECT mobilenumber, mobilenumber1, phonenumber, phonenumber1 FROM import.personnes ORDER BY id;
|
||||
END $$;
|
||||
|
||||
-- 35. Prepare required default dates
|
||||
-- address_validfrom1 | household_startdate1
|
||||
-- acp_openingdate1
|
||||
|
||||
|
||||
-- 40. Prepare id mapping before insertion
|
||||
ALTER TABLE import.personnes ADD column person_id BIGINT;
|
||||
UPDATE import.personnes SET person_id=personid
|
||||
@ -277,6 +272,7 @@ INSERT INTO chill_person_person (
|
||||
, -- acceptsms, acceptemail
|
||||
*/
|
||||
FROM import.personnes ip;
|
||||
SELECT setval('chill_person_person_id_seq', (SELECT COALESCE(max(id)) FROM chill_person_person));
|
||||
|
||||
-- 42. Fill Person center history
|
||||
INSERT INTO chill_person_person_center_history (id, person_id, center_id, startdate) SELECT
|
||||
@ -290,11 +286,12 @@ INSERT INTO chill_person_person_center_history (id, person_id, center_id, startd
|
||||
ALTER TABLE import.personnes ADD column address_id BIGINT;
|
||||
UPDATE import.personnes SET address_id = nextval('chill_main_address_id_seq');
|
||||
ALTER TABLE import.personnes ADD column postcode_id BIGINT;
|
||||
UPDATE import.personnes SET postcode_id = cmpc.id FROM chill_main_postal_code cmpc WHERE cmpc.code = postcode AND cmpc.origin = 0;
|
||||
UPDATE import.personnes SET postcode_id = pc.id FROM chill_main_postal_code pc WHERE pc.code = postcode AND pc.origin = 0;
|
||||
INSERT INTO chill_main_address (id, postcode_id, street, streetnumber, extra, validFrom) SELECT
|
||||
address_id, postcode_id, street, streetnumber, extra, COALESCE(validfrom1 , date(date_trunc('year', CURRENT_DATE)))
|
||||
FROM import.personnes WHERE postcode_id IS NOT NULL;
|
||||
SELECT ip.person_id, ip.address_id FROM import.personnes ip ;
|
||||
SELECT setval('chill_main_address_id_seq', (SELECT COALESCE(max(id)) FROM chill_main_address));
|
||||
-- SELECT ip.person_id, ip.address_id FROM import.personnes ip ;
|
||||
-- SELECT ip.id, ip.person_id, ip.firstname, ip.lastname, addr.* FROM chill_main_address addr RIGHT JOIN import.personnes ip ON addr.id = ip.address_id ORDER BY ip.id;
|
||||
|
||||
-- 44. Add houshold and household member with position
|
||||
@ -307,12 +304,55 @@ INSERT INTO chill_person_household_members (id, person_id, household_id, startda
|
||||
-- SELECT ip.id, ip.person_id, ip.firstname, ip.lastname, hh.* FROM chill_person_household hh FULL JOIN import.personnes ip ON hh.id = ip.person_id ORDER BY hh.id;
|
||||
-- SELECT ip.id, ip.person_id, ip.firstname, ip.lastname, memb.* FROM chill_person_household_members memb JOIN import.personnes ip ON memb.household_id = ip.person_id ORDER BY memb.household_id;
|
||||
|
||||
-- 45. Add address to household
|
||||
-- 45. Link address to household
|
||||
INSERT INTO chill_person_household_to_addresses (household_id, address_id) SELECT person_id, address_id
|
||||
FROM import.personnes WHERE postcode_id IS NOT NULL; -- cfr (*) adresse insérées seulement si postcode
|
||||
|
||||
-- 46. Add household composition
|
||||
-- (not yet implemented in canvas)
|
||||
INSERT INTO chill_person_household_composition (id, household_id, startdate, householdcompositiontype_id) SELECT
|
||||
nextval('chill_person_household_composition_id_seq'), person_id AS household_id, date(date_trunc('year', CURRENT_DATE))
|
||||
, (SELECT id FROM chill_person_household_composition_type ct WHERE household_composition_type1::jsonb->>'fr' = ct.label::jsonb->>'fr')
|
||||
FROM import.personnes
|
||||
WHERE household_composition_type1 IS NOT NULL ;
|
||||
|
||||
-- 50. Prepare id mapping before insertion
|
||||
ALTER TABLE import.periodes ADD column period_id BIGINT;
|
||||
UPDATE import.periodes SET period_id = periodid
|
||||
FROM (SELECT id, nextval('chill_person_accompanying_period_id_seq') AS periodid FROM import.periodes ORDER BY id) AS t
|
||||
WHERE import.periodes.id = t.id;
|
||||
--SELECT ipe.id, ipe.fullname, ipe.period_id, ip.id, ip.person_id FROM import.periodes ipe JOIN import.personnes ip ON ipe.id = ip.id ORDER BY ipe.id;
|
||||
|
||||
-- 51. Insert in chill_person_accompanying_period
|
||||
INSERT INTO chill_person_accompanying_period (id, openingdate, step, remark, intensity, createdby_id, createdat, updatedby_id, updatedat) SELECT
|
||||
period_id, date(date_trunc('year', CURRENT_DATE)), 'CONFIRMED', COALESCE(TRIM(remark), ''), intensity1,
|
||||
(SELECT distinct(first_value(id) OVER(ORDER BY id)) FROM users), CURRENT_DATE,
|
||||
(SELECT distinct(first_value(id) OVER(ORDER BY id)) FROM users), CURRENT_DATE
|
||||
FROM import.periodes;
|
||||
SELECT setval('chill_person_accompanying_period_id_seq', (SELECT max(id) FROM chill_person_accompanying_period));
|
||||
|
||||
-- 52. Link participations to periods
|
||||
INSERT INTO chill_person_accompanying_period_participation (id, person_id, accompanyingperiod_id, startdate) SELECT
|
||||
nextval('chill_person_accompanying_period_participation_id_seq'), t.person_id, t.period_id, date(date_trunc('year', CURRENT_DATE))
|
||||
FROM (SELECT person_id, period_id FROM import.periodes ip JOIN import.personnes p ON ip.id = p.id ORDER BY person_id) AS t;
|
||||
|
||||
-- 53. Prepare temporary address location
|
||||
INSERT INTO chill_main_address (id, postcode_id, street, streetnumber, validFrom) SELECT
|
||||
nextval('chill_main_address_id_seq'),
|
||||
(SELECT pc.id FROM chill_main_postal_code pc WHERE pc.code = postcode),
|
||||
street, streetnumber, date(date_trunc('year', CURRENT_DATE))
|
||||
FROM import.choix_periodes WHERE street != '';
|
||||
ALTER TABLE import.choix_periodes ADD COLUMN address_location_id BIGINT;
|
||||
UPDATE import.choix_periodes SET address_location_id = (SELECT max(id) FROM chill_main_address) WHERE street != '';
|
||||
|
||||
-- 54. Link period to person or temporary address location
|
||||
UPDATE chill_person_accompanying_period acp
|
||||
SET addresslocation_id = (SELECT address_location_id FROM import.choix_periodes WHERE address_location_id IS NOT NULL LIMIT 1)
|
||||
FROM import.personnes pson JOIN import.periodes piod ON pson.id = piod.id
|
||||
WHERE piod.period_id = acp.id AND piod.addresslocation = 'oui';
|
||||
UPDATE chill_person_accompanying_period acp
|
||||
SET personlocation_id = pson.person_id
|
||||
FROM import.personnes pson JOIN import.periodes piod ON pson.id = piod.id
|
||||
WHERE piod.period_id = acp.id AND piod.personlocation = 'oui';
|
||||
|
||||
|
||||
-- ========================================================================================= --
|
||||
@ -321,28 +361,51 @@ INSERT INTO chill_person_household_to_addresses (household_id, address_id) SELEC
|
||||
-- DOWN
|
||||
--
|
||||
|
||||
-- Undo 54.
|
||||
UPDATE chill_person_accompanying_period acp SET addresslocation_id = NULL, personlocation_id = NULL FROM import.periodes piod WHERE piod.period_id = acp.id;
|
||||
|
||||
-- Undo 53.
|
||||
DELETE FROM chill_main_address addr USING import.choix_periodes ic WHERE addr.id = ic.address_location_id;
|
||||
SELECT setval('chill_main_address_id_seq', (SELECT COALESCE(max(id), 1) FROM chill_main_address));
|
||||
ALTER TABLE import.choix_periodes DROP COLUMN address_location_id;
|
||||
|
||||
-- Undo 52.
|
||||
DELETE FROM chill_person_accompanying_period_participation part USING import.periodes ip WHERE part.accompanyingperiod_id = ip.period_id;
|
||||
SELECT setval('chill_person_accompanying_period_participation_id_seq', (SELECT COALESCE(max(id), 1) FROM chill_person_accompanying_period_participation));
|
||||
|
||||
-- Undo 51.
|
||||
DELETE FROM chill_person_accompanying_period acp USING import.periodes ip WHERE acp.id = ip.period_id;
|
||||
SELECT setval('chill_person_accompanying_period_id_seq', (SELECT COALESCE(max(id), 1) FROM chill_person_accompanying_period));
|
||||
|
||||
-- Undo 50.
|
||||
ALTER TABLE import.periodes DROP column period_id;
|
||||
|
||||
-- Undo 46.
|
||||
DELETE FROM chill_person_household_composition c USING import.personnes ip WHERE c.household_id = ip.person_id;
|
||||
SELECT setval('chill_person_household_composition_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_household_composition));
|
||||
|
||||
-- Undo 45.
|
||||
DELETE FROM chill_person_household_to_addresses hhaddr USING import.personnes ip WHERE hhaddr.household_id = ip.person_id ;
|
||||
DELETE FROM chill_person_household_to_addresses hhaddr USING import.personnes ip WHERE hhaddr.household_id = ip.person_id;
|
||||
|
||||
-- Undo 44.
|
||||
DELETE FROM chill_person_household_members memb USING import.personnes ip WHERE memb.person_id = ip.person_id;
|
||||
SELECT setval('chill_person_household_members_id_seq', (SELECT max(id) FROM chill_person_household_members));
|
||||
SELECT setval('chill_person_household_members_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_household_members));
|
||||
DELETE FROM chill_person_household hh USING import.personnes ip WHERE hh.id = ip.person_id;
|
||||
SELECT setval('chill_person_household_id_seq', (SELECT max(id) FROM chill_person_household));
|
||||
SELECT setval('chill_person_household_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_household));
|
||||
|
||||
-- Undo 43.
|
||||
DELETE FROM chill_main_address addr USING import.personnes ip WHERE addr.id = ip.address_id;
|
||||
SELECT setval('chill_main_address_id_seq', (SELECT max(id) FROM chill_main_address));
|
||||
SELECT setval('chill_main_address_id_seq', (SELECT COALESCE(max(id),1) FROM chill_main_address));
|
||||
ALTER TABLE import.personnes DROP column postcode_id;
|
||||
ALTER TABLE import.personnes DROP column address_id;
|
||||
|
||||
-- Undo 42.
|
||||
DELETE FROM chill_person_person_center_history hist USING import.personnes ip WHERE hist.person_id = ip.person_id;
|
||||
SELECT setval('chill_person_person_center_history_id_seq', (SELECT max(id) FROM chill_person_person_center_history));
|
||||
SELECT setval('chill_person_person_center_history_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_person_center_history));
|
||||
|
||||
-- Undo 41.
|
||||
DELETE FROM chill_person_person p USING import.personnes ip WHERE p.id = ip.person_id;
|
||||
SELECT setval('chill_person_person_id_seq', (SELECT max(id) FROM chill_person_person));
|
||||
SELECT setval('chill_person_person_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_person));
|
||||
|
||||
-- Undo 40.
|
||||
ALTER TABLE import.personnes DROP COLUMN person_id;
|
||||
@ -396,8 +459,8 @@ ALTER TABLE import.personnes DROP COLUMN civility1;
|
||||
|
||||
-- Undo 13.
|
||||
DELETE FROM chill_person_social_issue USING import.choix_periodes i
|
||||
WHERE parent_id IN ( SELECT id FROM chill_person_social_issue cpsi WHERE cpsi.title::jsonb = i.parent1::jsonb AND cpsi.parent_id IS NULL );
|
||||
DELETE FROM chill_person_social_issue cpsi USING import.choix_periodes icp WHERE cpsi.title::jsonb = icp.parent1::jsonb AND cpsi.parent_id IS NULL ;
|
||||
WHERE parent_id IN ( SELECT id FROM chill_person_social_issue cpsi WHERE cpsi.title::jsonb->>'fr' = i.parent1::jsonb->>'fr' AND cpsi.parent_id IS NULL );
|
||||
DELETE FROM chill_person_social_issue cpsi USING import.choix_periodes icp WHERE cpsi.title::jsonb->>'fr' = icp.parent1::jsonb->>'fr' AND cpsi.parent_id IS NULL ;
|
||||
SELECT setval('chill_person_social_issue_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_social_issue));
|
||||
ALTER TABLE import.choix_periodes DROP COLUMN enfant1;
|
||||
ALTER TABLE import.choix_periodes DROP COLUMN parent1;
|
||||
@ -407,46 +470,54 @@ DELETE FROM users USING import.choix_periodes icp WHERE users.username::text = i
|
||||
SELECT setval('users_id_seq', (SELECT COALESCE(max(id),1) FROM users));
|
||||
|
||||
-- Undo 11.
|
||||
DELETE FROM scopes USING import.choix_periodes icp WHERE scopes.name::jsonb = icp.acp_scopes1::jsonb;
|
||||
DELETE FROM scopes USING import.choix_periodes icp WHERE scopes.name::jsonb->>'fr' = icp.acp_scopes1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_periodes WHERE scopes.name::jsonb->>'fr' = icp.acp_scopes1::jsonb->>'fr');
|
||||
SELECT setval('scopes_id_seq', (SELECT COALESCE(max(id),1) FROM scopes));
|
||||
ALTER TABLE import.choix_periodes DROP COLUMN acp_scopes1;
|
||||
|
||||
-- Undo 10.
|
||||
DELETE FROM chill_main_user_job cmuj USING import.choix_periodes icp WHERE cmuj.label::jsonb = icp.job1::jsonb;
|
||||
DELETE FROM chill_main_user_job cmuj USING import.choix_periodes icp WHERE cmuj.label::jsonb->>'fr' = icp.job1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_periodes WHERE cmuj.label::jsonb->>'fr' = icp.job1::jsonb->>'fr');
|
||||
SELECT setval('chill_main_user_job_id_seq', (SELECT COALESCE(max(id),1) FROM chill_main_user_job));
|
||||
ALTER TABLE import.choix_periodes DROP COLUMN job1;
|
||||
|
||||
-- Undo 9.
|
||||
DELETE FROM chill_person_accompanying_period_origin cpapo USING import.choix_periodes icp WHERE cpapo.label::jsonb = icp.origin1::jsonb;
|
||||
DELETE FROM chill_person_accompanying_period_origin cpapo USING import.choix_periodes icp WHERE cpapo.label::jsonb->>'fr' = icp.origin1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_periodes WHERE cpapo.label::jsonb->>'fr' = icp.origin1::jsonb->>'fr');
|
||||
SELECT setval('chill_person_accompanying_period_origin_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_accompanying_period_origin));
|
||||
ALTER TABLE import.choix_periodes DROP COLUMN origin1;
|
||||
|
||||
-- Undo 8.
|
||||
DELETE FROM chill_person_accompanying_period_closingmotive cpapcm USING import.choix_periodes icp WHERE cpapcm.name::jsonb = icp.closingmotive1::jsonb;
|
||||
DELETE FROM chill_person_accompanying_period_closingmotive cpapcm USING import.choix_periodes icp WHERE cpapcm.name::jsonb->>'fr' = icp.closingmotive1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_periodes WHERE cpapcm.name::jsonb->>'fr' = icp.closingmotive1::jsonb->>'fr');
|
||||
SELECT setval('chill_person_accompanying_period_closingmotive_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_accompanying_period_closingmotive));
|
||||
ALTER TABLE import.choix_periodes DROP COLUMN closingmotive1;
|
||||
|
||||
-- Undo 7.
|
||||
DELETE FROM chill_person_household_position cphp USING import.choix_personnes icp WHERE cphp.label::jsonb = icp.household_position1::jsonb;
|
||||
DELETE FROM chill_person_household_position cphp USING import.choix_personnes icp WHERE cphp.label::jsonb->>'fr' = icp.household_position1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_personnes WHERE cphp.label::jsonb->>'fr' = icp.household_position1::jsonb->>'fr');
|
||||
SELECT setval('chill_person_household_position_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_household_position));
|
||||
ALTER TABLE import.choix_personnes DROP COLUMN household_position1;
|
||||
|
||||
-- Undo 6.
|
||||
DELETE FROM chill_person_household_composition_type cphct USING import.choix_personnes icp WHERE cphct.label::jsonb = icp.household_composition_type1::jsonb AND cphct.id > 6;
|
||||
DELETE FROM chill_person_household_composition_type cphct USING import.choix_personnes icp WHERE cphct.label::jsonb->>'fr' = icp.household_composition_type1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_personnes WHERE cphct.label::jsonb->>'fr' = icp.household_composition_type1::jsonb->>'fr');
|
||||
SELECT setval('chill_person_household_composition_type_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_household_composition_type));
|
||||
ALTER TABLE import.choix_personnes DROP COLUMN household_composition_type1;
|
||||
|
||||
-- Undo 5.
|
||||
DELETE FROM chill_person_marital_status cpms USING import.choix_personnes icp WHERE cpms.name::jsonb = icp.maritalstatus1::jsonb AND cpms.id <> 'célibat.' AND cpms.id <> 'marié'; -- existing marital status
|
||||
DELETE FROM chill_person_marital_status cpms USING import.choix_personnes icp WHERE cpms.name::jsonb->>'fr' = icp.maritalstatus1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_personnes WHERE cpms.name::jsonb->>'fr' = icp.maritalstatus1::jsonb->>'fr');
|
||||
ALTER TABLE import.choix_personnes DROP COLUMN maritalstatus1;
|
||||
|
||||
-- Undo 4.
|
||||
DELETE FROM country USING import.choix_personnes icp WHERE country.name::jsonb = icp.country1::jsonb AND country.id > 249; -- 249 existing countries
|
||||
DELETE FROM country USING import.choix_personnes icp WHERE country.name::jsonb->>'fr' = icp.country1::jsonb->>'fr' AND country.id > 249; -- 249 existing countries
|
||||
SELECT setval('country_id_seq', (SELECT COALESCE(max(id),1) FROM country));
|
||||
ALTER TABLE import.choix_personnes DROP COLUMN country1;
|
||||
|
||||
-- Undo 3.
|
||||
DELETE FROM chill_main_civility cmc USING import.choix_personnes ip WHERE cmc.name::jsonb = ip.civility1::jsonb;
|
||||
DELETE FROM chill_main_civility cmc USING import.choix_personnes ip WHERE cmc.name::jsonb->>'fr' = ip.civility1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_personnes WHERE cmc.name::jsonb->>'fr' = ip.civility1::jsonb->>'fr');
|
||||
SELECT setval('chill_main_civility_id_seq', (SELECT COALESCE(max(id),1) FROM chill_main_civility));
|
||||
ALTER TABLE import.choix_personnes DROP COLUMN civility1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user