Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- do
- $$
- declare
- rec record;
- query_text text;
- begin
- for rec in(select lower(scheme) as scheme
- from regadm.m_projects p
- where exists(select * from pg_namespace nsp where nsp.nspname=lower(p.scheme))
- and lower(scheme) not in('regadm')
- order by 1)
- loop
- raise info '%',rec.scheme;
- --
- query_text:='CREATE OR REPLACE FUNCTION %schema%.sp_clear_gis_ef_schema_tables() RETURNS void
- AS
- $function$
- begin
- delete from %schema%.d_gis_background_layer;
- delete from %schema%.d_gis_group_layers;
- delete from %schema%.d_gis_layer;
- delete from %schema%.d_gis_layer_in_group;
- delete from %schema%.d_gis_layer_meta;
- delete from %schema%.d_gis_map;
- delete from %schema%.d_gis_map_background_layer;
- delete from %schema%.d_gis_map_layer;
- delete from %schema%.d_gis_free_layer;
- delete from %schema%.d_gis_map_theme_section;
- delete from %schema%.d_gis_theme_frame_item;
- delete from %schema%.d_gis_theme_item_in_frame;
- delete from %schema%.d_gis_theme_layer;
- delete from %schema%.d_gis_theme_layer_legend_frame;
- delete from %schema%.d_gis_theme_legend_frame;
- delete from %schema%.d_gis_theme_section;
- delete from %schema%.d_gis_theme_section_layer;
- delete from %schema%.d_gis_view_settings;
- end;
- $function$ language plpgsql';
- execute replace(query_text,'%schema%',rec.scheme);
- --
- query_text:='CREATE OR REPLACE FUNCTION %schema%.sp_clear_gis_ef_tables_in_schema() RETURNS void
- AS
- $function$
- begin
- drop table %schema%.d_gis_background_layer CASCADE;
- drop table %schema%.d_gis_group_layers CASCADE;
- drop table %schema%.d_gis_layer CASCADE;
- drop table %schema%.d_gis_layer_in_group CASCADE;
- drop table %schema%.d_gis_layer_meta CASCADE;
- drop table %schema%.d_gis_map CASCADE;
- drop table %schema%.d_gis_free_layer CASCADE;
- drop table %schema%.d_gis_map_background_layer CASCADE;
- drop table %schema%.d_gis_map_layer CASCADE;
- drop table %schema%.d_gis_map_theme_section CASCADE;
- drop table %schema%.d_gis_theme_frame_item CASCADE;
- drop table %schema%.d_gis_theme_item_in_frame CASCADE;
- drop table %schema%.d_gis_theme_layer CASCADE;
- drop table %schema%.d_gis_theme_layer_legend_frame CASCADE;
- drop table %schema%.d_gis_theme_legend_frame CASCADE;
- drop table %schema%.d_gis_theme_section CASCADE;
- drop table %schema%.d_gis_theme_section_layer CASCADE;
- drop table %schema%.d_gis_view_settings CASCADE;
- DROP SEQUENCE %schema%.d_gis_sequence;
- end;
- $function$ language plpgsql';
- execute replace(query_text,'%schema%',rec.scheme);
- --
- query_text:='CREATE OR REPLACE FUNCTION %schema%.sp_create_gis_ef_tables_in_schema() RETURNS void
- AS
- $function$
- begin
- CREATE SEQUENCE %schema%.d_gis_sequence
- INCREMENT BY 1
- MINVALUE 1
- MAXVALUE 9223372036854775807
- START 1;
- CREATE TABLE %schema%.d_gis_layer_meta (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- project varchar(100),
- alias varchar(500) NOT NULL DEFAULT ''''::character varying,
- view_alias varchar(500),
- geo_view_alias varchar(500) NOT NULL DEFAULT ''''::character varying,
- CONSTRAINT "PK_%schema%.d_gis_layer_meta" PRIMARY KEY ("key")
- );
- CREATE UNIQUE INDEX "d_gis_layer_meta_IX_LM_U" ON %schema%.d_gis_layer_meta (alias DESC,view_alias DESC,geo_view_alias DESC) ;
- CREATE TABLE %schema%.d_gis_layer (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- display_name varchar(200) NOT NULL DEFAULT ''''::character varying,
- type_name varchar(100) NOT NULL DEFAULT ''''::character varying,
- "name" varchar(500),
- meta_key bigint,
- geoserver_key bigint,
- overriding_style varchar(200),
- url varchar(200),
- copyright_info varchar(200),
- inverted_tms bool,
- tms_source_type integer,
- "Discriminator" varchar(128) NOT NULL DEFAULT ''''::character varying,
- srs_key bigint,
- CONSTRAINT "PK_%schema%.d_gis_layer" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_layer.geoserver_key" FOREIGN KEY (geoserver_key) REFERENCES regadm.d_gis_geoserver("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_layer.meta_key" FOREIGN KEY (meta_key) REFERENCES %schema%.d_gis_layer_meta("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_layer.srs_key" FOREIGN KEY (srs_key) REFERENCES regadm.d_gis_srs("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_layer_IX_geoserver_key" ON %schema%.d_gis_layer (geoserver_key DESC) ;
- CREATE INDEX "d_gis_layer_IX_meta_key" ON %schema%.d_gis_layer (meta_key DESC) ;
- CREATE INDEX "d_gis_layer_IX_srs_key" ON %schema%.d_gis_layer (srs_key DESC) ;
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_background_layer (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- content_layer_key bigint NOT NULL DEFAULT 0,
- icon_base64 text,
- CONSTRAINT "PK_%schema%.d_gis_background_layer" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_background_layer.content_layer_key" FOREIGN KEY (content_layer_key) REFERENCES %schema%.d_gis_layer("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_background_layer_IX_content_layer_key" ON %schema%.d_gis_background_layer (content_layer_key DESC) ;
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_group_layers (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- display_name varchar(200) NOT NULL DEFAULT ''''::character varying,
- "name" varchar(500) NOT NULL DEFAULT ''''::character varying,
- CONSTRAINT "PK_%schema%.d_gis_group_layers" PRIMARY KEY ("key")
- );
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_layer_in_group (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- group_layer_key bigint NOT NULL DEFAULT 0,
- layer_key bigint NOT NULL DEFAULT 0,
- "order" integer NOT NULL DEFAULT 0,
- container_key bigint NOT NULL DEFAULT 0,
- "GroupLayer_Key" bigint,
- CONSTRAINT "PK_%schema%.d_gis_layer_in_group" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_layer_in_group.GroupLayer_Key" FOREIGN KEY ("GroupLayer_Key") REFERENCES %schema%.d_gis_group_layers("key"),
- CONSTRAINT "FK.%schema%.d_gis_layer_in_group.container_key" FOREIGN KEY (container_key) REFERENCES %schema%.d_gis_group_layers("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_layer_in_group.group_layer_key" FOREIGN KEY (group_layer_key) REFERENCES %schema%.d_gis_group_layers("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_layer_in_group.layer_key" FOREIGN KEY (layer_key) REFERENCES %schema%.d_gis_layer("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_layer_in_group_IX_GeoL" ON %schema%.d_gis_layer_in_group (layer_key DESC) ;
- CREATE INDEX "d_gis_layer_in_group_IX_GrL" ON %schema%.d_gis_layer_in_group (group_layer_key DESC) ;
- CREATE INDEX "d_gis_layer_in_group_IX_GroupLayer_Key" ON %schema%.d_gis_layer_in_group ("GroupLayer_Key" DESC) ;
- CREATE INDEX "d_gis_layer_in_group_IX_container_key" ON %schema%.d_gis_layer_in_group (container_key DESC) ;
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_view_settings (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- center_x float8 NOT NULL DEFAULT 0,
- center_y float8 NOT NULL DEFAULT 0,
- srs_key bigint NOT NULL DEFAULT 0,
- default_scale float8 NOT NULL DEFAULT 0,
- min_scale float8 NOT NULL DEFAULT 0,
- show_on_map_scale float8 NOT NULL DEFAULT 0,
- browser_cache_lifetime integer NOT NULL DEFAULT 0,
- is_default bool NOT NULL DEFAULT false,
- default_zoom bigint NOT NULL,
- min_zoom bigint NOT NULL,
- show_on_map_zoom bigint NOT NULL,
- CONSTRAINT "PK_%schema%.d_gis_view_settings" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_view_settings.srs_key" FOREIGN KEY (srs_key) REFERENCES regadm.d_gis_srs("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_view_settings_IX_srs_key" ON %schema%.d_gis_view_settings (srs_key DESC) ;
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_map (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- view_settings_key bigint NOT NULL DEFAULT 0,
- untyped_layer_key bigint,
- display_name varchar(500),
- CONSTRAINT "PK_%schema%.d_gis_map" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_map.untyped_layer_key" FOREIGN KEY (untyped_layer_key) REFERENCES %schema%.d_gis_layer("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_map.view_settings_key" FOREIGN KEY (view_settings_key) REFERENCES %schema%.d_gis_view_settings("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_map_IX_untyped_layer_key" ON %schema%.d_gis_map (untyped_layer_key DESC) ;
- CREATE INDEX "d_gis_map_IX_view_settings_key" ON %schema%.d_gis_map (view_settings_key DESC) ;
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_free_layer (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- layer_key bigint NOT NULL DEFAULT 0,
- view_settings_key bigint NOT NULL DEFAULT 0,
- link_type integer NOT NULL DEFAULT 0,
- overriding_style varchar(200),
- browser_cache_lifetime integer NOT NULL DEFAULT 0,
- display_name varchar(200),
- CONSTRAINT "PK_%schema%.d_gis_free_layer" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_free_layer.view_settings_key" FOREIGN KEY (view_settings_key) REFERENCES %schema%.d_gis_view_settings("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_free_layer.layer_key" FOREIGN KEY (layer_key) REFERENCES %schema%.d_gis_layer("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_free_layer_IX_layer_key" ON %schema%.d_gis_free_layer (layer_key DESC) ;
- CREATE INDEX "d_gis_free_layer_IX_view_settings_key" ON %schema%.d_gis_free_layer (view_settings_key DESC) ;
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_map_layer (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- layer_key bigint NOT NULL DEFAULT 0,
- link_type integer NOT NULL DEFAULT 0,
- overriding_style varchar(200),
- browser_cache_lifetime integer NOT NULL DEFAULT 0,
- container_key bigint DEFAULT 0,
- "order" integer NOT NULL DEFAULT 0,
- display_name varchar(200),
- visible_by_default boolean NOT NULL DEFAULT true,
- CONSTRAINT "PK_%schema%.d_gis_map_layer" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_map_layer.container_key" FOREIGN KEY (container_key) REFERENCES %schema%.d_gis_map("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_map_layer.layer_key" FOREIGN KEY (layer_key) REFERENCES %schema%.d_gis_layer("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_map_layer_IX_container_key" ON %schema%.d_gis_map_layer (container_key DESC) ;
- CREATE INDEX "d_gis_map_layer_IX_layer_key" ON %schema%.d_gis_map_layer (layer_key DESC) ;
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_map_background_layer (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- layer_key bigint NOT NULL DEFAULT 0,
- is_default bool NOT NULL DEFAULT false,
- container_key bigint NOT NULL DEFAULT 0,
- "order" integer NOT NULL DEFAULT 0,
- display_name varchar(200),
- visible_by_default boolean NOT NULL DEFAULT true,
- CONSTRAINT "PK_%schema%.d_gis_map_background_layer" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_map_background_layer.container_key" FOREIGN KEY (container_key) REFERENCES %schema%.d_gis_map("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_map_background_layer.layer_key" FOREIGN KEY (layer_key) REFERENCES %schema%.d_gis_background_layer("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_map_background_layer_IX_container_key" ON %schema%.d_gis_map_background_layer (container_key DESC) ;
- CREATE INDEX "d_gis_map_background_layer_IX_layer_key" ON %schema%.d_gis_map_background_layer (layer_key DESC) ;
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_theme_section (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- "name" varchar(200) NOT NULL DEFAULT ''''::character varying,
- CONSTRAINT "PK_%schema%.d_gis_theme_section" PRIMARY KEY ("key")
- );
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_map_theme_section (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- theme_section_key bigint NOT NULL DEFAULT 0,
- container_key bigint NOT NULL DEFAULT 0,
- "order" integer NOT NULL DEFAULT 0,
- CONSTRAINT "PK_%schema%.d_gis_map_theme_section" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_map_theme_section.container_key" FOREIGN KEY (container_key) REFERENCES %schema%.d_gis_map("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_map_theme_section.theme_section_key" FOREIGN KEY (theme_section_key) REFERENCES %schema%.d_gis_theme_section("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_map_theme_section_IX_container_key" ON %schema%.d_gis_map_theme_section (container_key DESC);
- CREATE INDEX "d_gis_map_theme_section_IX_theme_section_key" ON %schema%.d_gis_map_theme_section (theme_section_key DESC);
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_theme_layer (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- geoserver_layer_key bigint NOT NULL DEFAULT 0,
- link_type integer NOT NULL DEFAULT 0,
- overriding_style varchar(200),
- browser_cache_lifetime integer NOT NULL DEFAULT 0,
- CONSTRAINT "PK_%schema%.d_gis_theme_layer" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_theme_layer.geoserver_layer_key" FOREIGN KEY (geoserver_layer_key) REFERENCES %schema%.d_gis_layer("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_theme_layer_IX_geoserver_layer_key" ON %schema%.d_gis_theme_layer (geoserver_layer_key DESC);
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_theme_section_layer (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- theme_layer_key bigint NOT NULL DEFAULT 0,
- container_key bigint NOT NULL DEFAULT 0,
- "order" integer NOT NULL DEFAULT 0,
- CONSTRAINT "PK_%schema%.d_gis_theme_section_layer" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_theme_section_layer.container_key" FOREIGN KEY (container_key) REFERENCES %schema%.d_gis_theme_section("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_theme_section_layer.theme_layer_key" FOREIGN KEY (theme_layer_key) REFERENCES %schema%.d_gis_theme_layer("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_theme_section_layer_IX_container_key" ON %schema%.d_gis_theme_section_layer (container_key DESC);
- CREATE INDEX "d_gis_theme_section_layer_IX_theme_layer_key" ON %schema%.d_gis_theme_section_layer (theme_layer_key DESC);
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_theme_legend_frame (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- "name" varchar(500) NOT NULL DEFAULT ''''::character varying,
- legend_type varchar(500),
- is_vertical bool NOT NULL DEFAULT false,
- min_value varchar(200),
- max_value varchar(200),
- color varchar(5000),
- "Discriminator" varchar(128) NOT NULL DEFAULT ''''::character varying,
- CONSTRAINT "PK_%schema%.d_gis_theme_legend_frame" PRIMARY KEY ("key")
- );
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_theme_layer_legend_frame (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- legend_frame_key bigint NOT NULL DEFAULT 0,
- container_key bigint NOT NULL DEFAULT 0,
- "order" integer NOT NULL DEFAULT 0,
- CONSTRAINT "PK_%schema%.d_gis_theme_layer_legend_frame" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_theme_layer_legend_frame.container_key" FOREIGN KEY (container_key) REFERENCES %schema%.d_gis_theme_layer("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_theme_layer_legend_frame.legend_frame_key" FOREIGN KEY (legend_frame_key) REFERENCES %schema%.d_gis_theme_legend_frame("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_theme_layer_legend_frame_IX_container_key" ON %schema%.d_gis_theme_layer_legend_frame (container_key DESC);
- CREATE INDEX "d_gis_theme_layer_legend_frame_IX_legend_frame_key" ON %schema%.d_gis_theme_layer_legend_frame (legend_frame_key DESC);
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_theme_frame_item (
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- "name" varchar(500),
- color varchar(500),
- border varchar(500),
- icon_base64 text,
- CONSTRAINT "PK_%schema%.d_gis_theme_frame_item" PRIMARY KEY ("key")
- );
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE TABLE %schema%.d_gis_theme_item_in_frame (
- item_key bigint NOT NULL DEFAULT 0,
- "key" bigint NOT NULL DEFAULT nextval(''%schema%.d_gis_sequence''),
- container_key bigint NOT NULL DEFAULT 0,
- "order" integer NOT NULL DEFAULT 0,
- CONSTRAINT "PK_%schema%.d_gis_theme_item_in_frame" PRIMARY KEY ("key"),
- CONSTRAINT "FK.%schema%.d_gis_theme_item_in_frame.container_key" FOREIGN KEY (container_key) REFERENCES %schema%.d_gis_theme_legend_frame("key") ON DELETE CASCADE,
- CONSTRAINT "FK.%schema%.d_gis_theme_item_in_frame.item_key" FOREIGN KEY (item_key) REFERENCES %schema%.d_gis_theme_frame_item("key") ON DELETE CASCADE
- );
- CREATE INDEX "d_gis_theme_item_in_frame_IX_container_key" ON %schema%.d_gis_theme_item_in_frame (container_key DESC) ;
- CREATE INDEX "d_gis_theme_item_in_frame_IX_item_key" ON %schema%.d_gis_theme_item_in_frame (item_key DESC) ;
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- end;
- $function$ language plpgsql';
- execute replace(query_text,'%schema%',rec.scheme);
- end loop;
- --
- query_text:='CREATE OR REPLACE FUNCTION regadm.sp_clear_gis_ef_tables_shared() RETURNS void
- AS
- $function$
- begin
- drop table regadm.d_gis_srs CASCADE;
- drop table regadm.d_gis_geoserver CASCADE;
- drop sequence regadm.d_gis_sequence;
- drop table if exists regadm.d_gis_cache_monitor_revisions;
- end;
- $function$ LANGUAGE plpgsql';
- execute query_text;
- --
- query_text:='create or replace function regadm.sp_create_gis_ef_tables_shared() returns void
- as
- $function$
- begin
- create sequence regadm.d_gis_sequence
- increment by 1
- minvalue 1
- maxvalue 9223372036854775807
- start 1;
- create table regadm.d_gis_geoserver (
- "key" bigint not null default nextval(''regadm.d_gis_sequence''),
- display_name varchar(300) not null default ''''::character varying,
- description varchar(500),
- url varchar(200) not null default ''''::character varying,
- login varchar(500) not null default ''''::character varying,
- password varchar(500) not null default ''''::character varying,
- wms_features_limit integer not null default 0,
- constraint "pk_regadm.d_gis_geoserver" primary key ("key")
- );
- create unique index "d_gis_geoserver_ix_url" on regadm.d_gis_geoserver (url desc) ;
- create table regadm.d_gis_srs (
- "key" bigint not null default nextval(''regadm.d_gis_sequence''),
- code varchar(500) not null default ''''::character varying,
- wkt varchar(1000),
- proj4 varchar(1000),
- display_name varchar(250),
- constraint "pk_anivsky_test.d_gis_srs" primary key ("key")
- );
- create unique index "d_gis_srs_ix_srs_u" on regadm.d_gis_srs (code desc);
- CREATE OR REPLACE FUNCTION regadm.f_d_gis_srs() RETURNS trigger AS
- $BODYGIS$
- DECLARE
- tsrid bigint;
- BEGIN
- if(trim(NEW.code) is not null and upper(trim(NEW.code)) like ''EPSG:%'') then
- raise notice ''Обрабатывает данные "%"'',NEW.code;
- tsrid:=regexp_replace(NEW.code,''EPSG:(\d+)'',''\1'');
- raise notice ''Получен код %'',tsrid;
- if not exists(select 1 from public.spatial_ref_sys where srid=tsrid) then
- raise info ''Указанного srid=% нет в public.spatial_ref_sys. Создаем'', tsrid;
- insert into public.spatial_ref_sys(srid,auth_name,auth_srid,srtext,proj4text) values(tsrid,NEW.code,tsrid,NEW.wkt,NEW.proj4);
- else
- raise info ''Указанный srid=% существует в public.spatial_ref_sys. Обновляем'', tsrid;
- update public.spatial_ref_sys
- set auth_name=NEW.code,
- srtext=NEW.wkt,
- proj4text=NEW.proj4
- where srid=tsrid;
- end if;
- end if;
- return NEW;
- CREATE TABLE regadm.d_gis_cache_monitor_revisions
- (
- project_alias character varying(60) NOT NULL,
- last_revision bigint NOT NULL,
- CONSTRAINT d_gis_cache_monitor_revisions_project_alias_key UNIQUE (project_alias)
- );
- END;
- $BODYGIS$ LANGUAGE plpgsql;
- CREATE TRIGGER trg_d_gis_srs BEFORE INSERT ON regadm.d_gis_srs FOR EACH ROW EXECUTE PROCEDURE regadm.f_d_gis_srs();
- end;
- $function$ language plpgsql';
- execute query_text;
- end$$;
- do
- $$
- begin
- perform regadm.sp_create_gis_ef_tables_shared();
- exception when others then null;
- end$$;
- do
- $$
- declare
- c bigint;
- rec record;
- begin
- select count(*) into c from information_schema.tables where table_name like 'd_gis%' and table_schema='regadm';
- if c=0 then
- raise info '%','regadm';
- execute 'select regadm.sp_create_gis_ef_tables_shared()';
- end if;
- for rec in(select lower(scheme) as scheme
- from regadm.m_projects p
- join pg_namespace n on lower(p.scheme)=n.nspname
- where lower(p.scheme)!='regadm')
- loop
- select count(*) into c from information_schema.tables where table_name like 'd_gis%' and table_schema=rec.scheme;
- if c=0 then
- raise info '%',rec.scheme;
- execute 'select '||rec.scheme||'.sp_create_gis_ef_tables_in_schema()';
- end if;
- end loop;
- end$$;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement