CREATE TABLE IF NOT EXISTS {SCHEMA_NAME}.settings (
name VARCHAR PRIMARY KEY NOT NULL, value VARCHAR
);
DROP FUNCTION IF EXISTS {SCHEMA_NAME}.update_settings(p_name VARCHAR, p_value VARCHAR);
CREATE OR REPLACE FUNCTION {SCHEMA_NAME}.settings_set(p_name VARCHAR, p_value VARCHAR)
RETURNS VOID
AS $$
BEGIN IF p_value IS NULL THEN DELETE FROM {SCHEMA_NAME}.settings WHERE name = p_name; ELSE INSERT INTO {SCHEMA_NAME}.settings (name, value) VALUES(p_name, p_value) ON CONFLICT(name) DO UPDATE SET value = p_value; END IF; END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION {SCHEMA_NAME}.settings_get(p_name VARCHAR)
RETURNS varchar
AS $$
DECLARE p_result varchar; BEGIN SELECT value INTO p_result FROM {SCHEMA_NAME}.settings WHERE name=$1; RETURN p_result; END;
$$ LANGUAGE plpgsql;
– define version settings —————————————————-
SELECT {SCHEMA_NAME}.settings_set('version', NULL); SELECT {SCHEMA_NAME}.settings_set('client_version', NULL); SELECT {SCHEMA_NAME}.settings_set('schema_version', '{CLIENT_VERSION}');