Create types only if they don't exist #302

This commit is contained in:
Rafa de la Torre
2016-11-23 16:38:47 +01:00
parent abbb227ad5
commit decc7626a8
+24 -15
View File
@@ -1,19 +1,28 @@
CREATE TYPE cdb_dataservices_server.service_type AS ENUM ( DO $$
'isolines', BEGIN
'hires_geocoder', IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'service_type') THEN
'routing', CREATE TYPE cdb_dataservices_server.service_type AS ENUM (
'observatory', 'isolines',
'internal_geocoder' 'hires_geocoder',
); 'routing',
'observatory',
CREATE TYPE cdb_dataservices_server.service_params AS ( 'internal_geocoder'
service cdb_dataservices_server.service_type, );
monthly_quota NUMERIC, END IF;
used_quota NUMERIC, END $$;
soft_limit BOOLEAN,
provider TEXT
);
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'service_params') THEN
CREATE TYPE cdb_dataservices_server.service_params AS (
service cdb_dataservices_server.service_type,
monthly_quota NUMERIC,
used_quota NUMERIC,
soft_limit BOOLEAN,
provider TEXT
);
END IF;
END $$;
CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_service_params( CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_service_params(
username TEXT, username TEXT,