# Функция удаления полей в данных JSONB Если уже есть заполненные данные в body какого то Приложения и была правка метаданных в базе с удалением полей, при обновлении элемента приложения система будет ругаться. Чтобы почистить данные в body, необходимо в схеме создать функцию: ```sql -- head - название схеме (площадки ELMA365) CREATE OR REPLACE FUNCTION head.json_object_delete_keys("json" json, VARIADIC "keys_to_delete" TEXT[]) RETURNS json LANGUAGE sql IMMUTABLE STRICT AS $function$ SELECT COALESCE( (SELECT ('{' || string_agg(to_json("key") || ':' || "value", ',') || '}') FROM json_each("json") WHERE "key" <> ALL ("keys_to_delete")), '{}' )::json $function$; ``` После этого выполнить запрос по очистке данных: ```sql -- где 'type', 'signatory_position', 'base_action', 'set_bank_details' - поля к удалению внутри body update head."_clients:_companies" set body = head.json_object_delete_keys(body::json, 'type', 'signatory_position', 'base_action', 'set_bank_details'); ```