From decc7626a8c58de4afb59f94b9f5fdcba53ccdd3 Mon Sep 17 00:00:00 2001 From: Rafa de la Torre Date: Wed, 23 Nov 2016 16:38:47 +0100 Subject: [PATCH] Create types only if they don't exist #302 --- server/extension/sql/200_quotas.sql | 39 ++++++++++++++++++----------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/server/extension/sql/200_quotas.sql b/server/extension/sql/200_quotas.sql index cc2a09e..66f6914 100644 --- a/server/extension/sql/200_quotas.sql +++ b/server/extension/sql/200_quotas.sql @@ -1,19 +1,28 @@ -CREATE TYPE cdb_dataservices_server.service_type AS ENUM ( - 'isolines', - 'hires_geocoder', - 'routing', - 'observatory', - 'internal_geocoder' -); - -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 -); +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'service_type') THEN + CREATE TYPE cdb_dataservices_server.service_type AS ENUM ( + 'isolines', + 'hires_geocoder', + 'routing', + 'observatory', + 'internal_geocoder' + ); + END IF; +END $$; +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( username TEXT,