from pycen import con_fon foreign_server = """ CREATE SERVER fdw_azalee FOREIGN DATA WRAPPER postgres_fdw OPTIONS (dbname 'azalee', host '91.134.194.221', port '5432') """ user_mapping = """ CREATE USER MAPPING FOR cen_admin SERVER fdw_azalee OPTIONS (user 'cen_admin', password '#CEN38@venir') """ foreign_table = """ -- DROP FOREIGN TABLE inventaires.inventaire_zh; CREATE FOREIGN TABLE inventaires.inventaire_zh ( site_code varchar(10) NULL, nom varchar NULL, auteur_site varchar NULL, auteur_geom varchar NULL, auteur_last_maj varchar NULL, date_site date NULL, date_geom date NULL, date_last_maj date NULL, type_milieu varchar NULL, type_site varchar NULL, typo_sdage varchar NULL, rmq_site text NULL, rmq_fct_majeur text NULL, rmq_interet_patri text NULL, rmq_bilan_menace text NULL, rmq_orient_act text NULL, rmq_usage_process text NULL, code_cb varchar NULL, lib_cb text NULL, activ_hum varchar NULL, impact varchar NULL, "position" varchar NULL, rmq_activ_hum text NULL, connexion varchar NULL, subm_orig varchar NULL, subm_freq varchar NULL, subm_etend varchar NULL, fct_bio varchar NULL, fct_hydro varchar NULL, int_patri varchar NULL, "val_socioEco" varchar NULL, crit_delim varchar NULL, crit_def_esp varchar NULL, entree_eau_reg varchar NULL, entree_eau_perm varchar NULL, entree_eau_topo varchar NULL, sortie_eau_reg varchar NULL, sortie_eau_perm varchar NULL, sortie_eau_topo varchar NULL, geom public.geometry(geometry, 2154) NULL ) SERVER fdw_azalee OPTIONS (schema_name 'zones_humides', table_name 'v_zoneshumides'); -- Permissions ALTER TABLE inventaires.inventaire_zh OWNER TO cen_admin; GRANT ALL ON TABLE inventaires.inventaire_zh TO cen_admin; """ view_v_zoneshumides = """ -- inventaires.v_zoneshumides source CREATE OR REPLACE VIEW inventaires.v_zoneshumides AS SELECT inventaire_zh.site_code, inventaire_zh.nom, inventaire_zh.auteur_site, inventaire_zh.auteur_geom, inventaire_zh.auteur_last_maj, inventaire_zh.date_site, inventaire_zh.date_geom, inventaire_zh.date_last_maj, inventaire_zh.type_milieu, inventaire_zh.type_site, inventaire_zh.typo_sdage, inventaire_zh.rmq_site, inventaire_zh.rmq_fct_majeur, inventaire_zh.rmq_interet_patri, inventaire_zh.rmq_bilan_menace, inventaire_zh.rmq_orient_act, inventaire_zh.rmq_usage_process, inventaire_zh.code_cb, inventaire_zh.lib_cb, inventaire_zh.activ_hum, inventaire_zh.impact, inventaire_zh."position", inventaire_zh.rmq_activ_hum, CASE WHEN inventaire_zh.rmq_activ_hum ~~ '%remblai%'::text THEN 't'::text ELSE 'f'::text END AS remblais, inventaire_zh.connexion, inventaire_zh.subm_orig, inventaire_zh.subm_freq, inventaire_zh.subm_etend, inventaire_zh.fct_bio, inventaire_zh.fct_hydro, inventaire_zh.int_patri, inventaire_zh."val_socioEco", inventaire_zh.crit_delim, inventaire_zh.crit_def_esp, inventaire_zh.entree_eau_reg, inventaire_zh.entree_eau_perm, inventaire_zh.entree_eau_topo, inventaire_zh.sortie_eau_reg, inventaire_zh.sortie_eau_perm, inventaire_zh.sortie_eau_topo, inventaire_zh.geom FROM inventaires.inventaire_zh; -- Permissions ALTER TABLE inventaires.v_zoneshumides OWNER TO cen_admin; GRANT ALL ON TABLE inventaires.v_zoneshumides TO cen_admin; GRANT SELECT ON TABLE inventaires.v_zoneshumides TO grp_sig; GRANT SELECT ON TABLE inventaires.v_zoneshumides TO cen_user; """ with con_fon.begin() as cnx: cnx.execute(foreign_server) cnx.execute(user_mapping) cnx.execute(foreign_table) cnx.execute(view_v_zoneshumides)