У меня есть один файл с несколькими хранимыми процедурами, как показано ниже.
--
-- Name: abc(character varying); Type: FUNCTION; Schema: schema_name; Owner: -
--
CREATE FUNCTION schema_name.abc(schema_name character varying) RETURNS opaque
LANGUAGE plpgsql
AS '54:-1', $$
DECLARE
a INT:= 0;
b INT:= 0;
BEGIN
END;
$$;
--
-- Name: bcd(); Type: FUNCTION; Schema: schema_name; Owner: -
--
CREATE FUNCTION schema_name.bcd() RETURNS opaque
LANGUAGE plpgsql
AS '-1', $$
DECLARE
a INT:= 0;
b INT:= 0;
BEGIN
END;
$$;
--
-- Name: cde(); Type: FUNCTION; Schema: schema_name; Owner: -
--
CREATE FUNCTION schema_name.cde() RETURNS opaque
LANGUAGE plpgsql
AS '-1', $$
DECLARE
a INT:= 0;
b INT:= 0;
BEGIN
END;
$$;
Мне нужно разделить его на каждый отдельный файл процедуры, который начинается с
--
-- Name:
Также отдельные файлы должны быть названы по имени схемы. В этом случае имена файлов должны быть ab c. sql, bcd. sql, cde. sql ..
Пока что я пробовал это
token = 'CREATE FUNCTION'
chunks = []
current_chunk = []
for line in open('procedures.txt'):
if line.startswith(token) and current_chunk:
chunks.append(current_chunk[:])
current_chunk = []
current_chunk.append(line)
print (current_chunk)
chunks.append(current_chunk)