From 1699aa747f7d6bea39c45f270ab5abc4f9d43c6e Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Tue, 3 May 2022 21:59:25 +0200 Subject: [PATCH] Rename script + remove triggers, view, procedure All theses part will be moving on another script --- createdatabase.py => create_database.py | 98 ------------------------- 1 file changed, 98 deletions(-) rename createdatabase.py => create_database.py (64%) diff --git a/createdatabase.py b/create_database.py similarity index 64% rename from createdatabase.py rename to create_database.py index f0317c9..c59c58b 100755 --- a/createdatabase.py +++ b/create_database.py @@ -142,72 +142,6 @@ if __name__ == '__main__': PRIMARY KEY (com,id_indicateur,date_debut) );""", {'schema':AsIs(args.schema_name)}) - - curs.execute(""" - CREATE OR REPLACE VIEW %(schema)s.view_indicateur_dep AS - SELECT id_departement, d.dep, d.ncc, s.id_indicateur, s.date_debut, SUM(s.VALEUR) - FROM %(schema)s.departement d - INNER JOIN %(schema)s.commune c ON c.dep = d.dep - INNER JOIN %(schema)s.statistique s ON s.com = c.com - GROUP BY id_departement,d.dep, s.date_debut, d.ncc, s.id_indicateur - ORDER BY id_indicateur;""", - {'schema':AsIs(args.schema_name)}) - - curs.execute(""" - CREATE OR REPLACE VIEW %(schema)s.view_indicateur_reg AS - SELECT id_region, r.reg, r.ncc, s.id_indicateur, s.date_debut, SUM(s.valeur) - FROM %(schema)s.region r - INNER JOIN %(schema)s.departement d ON d.reg = r.reg - INNER JOIN %(schema)s.commune c ON c.dep = d.dep - INNER JOIN %(schema)s.statistique s ON s.com = c.com - GROUP BY id_region, r.reg, s.date_debut, r.ncc, s.id_indicateur - ORDER BY id_indicateur;""", - {'schema':AsIs(args.schema_name)}) - - curs.execute(""" - ALTER TABLE %(schema)s.region - ADD COLUMN IF NOT EXISTS population INT; - """, - {'schema':AsIs(args.schema_name)}) - - curs.execute(""" - ALTER TABLE %(schema)s.departement - ADD COLUMN IF NOT EXISTS population INT; - """, - {'schema':AsIs(args.schema_name)}) - - curs.execute(""" - CREATE OR REPLACE PROCEDURE %(schema)s.PRC_POP_REG_DEP() - LANGUAGE plpgsql - AS $$ - DECLARE - REC RECORD; - BEGIN - - FOR REC IN (SELECT id_departement, ncc, SUM valeur - FROM %(schema)s.view_indicateur_dep v - WHERE id_indicateur = 1 - AND date_debut = '2018') LOOP - - UPDATE %(schema)s.departement - SET population = REC.valeur - WHERE id_departement = REC.id_departement; - - END LOOP; - - FOR REC IN (SELECT reg, SUM(population) valeur - FROM DEPARTEMENT d - GROUP BY REG) LOOP - - UPDATE %(schema)s.region - SET population = REC.VALEUR - WHERE reg = REC.reg; - - END LOOP; - END; - $$;""", - {'schema':AsIs(args.schema_name)}) - conn.commit() t.stop() t.start('Import data from csv files') @@ -245,36 +179,4 @@ if __name__ == '__main__': conn.commit() t.stop() - t.start('Call procedure') - with conn.cursor() as curs: - curs.execute("CALL %(schema)s.PRC_POP_REG_DEP()", - {'schema':AsIs(args.schema_name)} - ) - t.stop() - - t.start('Add Modify Trigger') - with conn.cursor() as curs: - curs.execute(""" - CREATE OR REPLACE FUNCTION %(schema)s.block_maj_reg_dep() - RETURNS TRIGGER AS $bloquage$ - BEGIN - RAISE EXCEPTION - 'Mise à jour non autorisé'; - END; - $bloquage$ language plpgsql; - - CREATE TRIGGER TRG_BLOQ_MAJ_REG - BEFORE INSERT OR UPDATE OR DELETE ON %(schema)s.region - - FOR EACH ROW EXECUTE PROCEDURE %(schema)s.block_maj_reg_dep(); - - CREATE TRIGGER TRG_BLOQ_MAJ_DEP - BEFORE INSERT OR UPDATE OR DELETE ON %(schema)s.departement - - FOR EACH ROW EXECUTE PROCEDURE %(schema)s.block_maj_reg_dep(); - """, - {'schema':AsIs(args.schema_name)}) - conn.commit() - - t.stop() conn.close()