pgcodekeeper / pgcodekeeper

pgCodeKeeper is a PostgreSQL schema management tool
https://pgcodekeeper.org
Apache License 2.0
125 stars 20 forks source link

Накат миграционного скрипта на GreenPlum #142

Open NickChadaev opened 1 month ago

NickChadaev commented 1 month ago

GreenPlum 6.16.1 Postgrews 9.4.24 Выполнено сравнение проекта и БД, создан миграционный скрипт.

NickChadaev commented 1 month ago

Не создаются некоторые расширения из миграционного скрипта, ниже приведён его текст:

SET check_function_bodies = false; START TRANSACTION; SET search_path = pg_catalog;

CREATE EXTENSION IF NOT EXISTS citext SCHEMA public; COMMENT ON EXTENSION citext IS 'data type for case-insensitive character strings'; -- -- ERROR: no pre-assigned OID for pg_type tuple "citext" (namespace:11 keyOid1:0 keyOid2:0) (oid_dispatch.c:650) (seg1 10.219.66.151:6001 pid=23080) (oid_dispatch.c:650) -- Line: 9 -- CREATE EXTENSION IF NOT EXISTS citext SCHEMA public

CREATE EXTENSION IF NOT EXISTS pgcrypto SCHEMA public; COMMENT ON EXTENSION pgcrypto IS 'cryptographic functions';

-- ERROR: no pre-assigned OID for pg_proc tuple "digest" (namespace:11 keyOid1:0 keyOid2:0) (oid_dispatch.c:650) (seg0 10.219.66.151:6000 pid=23932) (oid_dispatch.c:650) -- Line: 17 -- CREATE EXTENSION IF NOT EXISTS pgcrypto SCHEMA public

ALTER TABLE public."UserRequisites_GP_test_part" SET WITH (REORGANIZE=true) DISTRIBUTED BY ("UserId");
ALTER TABLE public.pxf_ch_test_trg SET WITH (REORGANIZE=true) DISTRIBUTED BY ("EventDate");
ALTER TABLE public.user_requisites_gp_test SET WITH (REORGANIZE=true) DISTRIBUTED BY ("UserId");

COMMIT TRANSACTION;

Будучи вынесенными в отдельный скрипт, и другой инструмент (Dbeaver) операторы создающие расширения выполняются нормально. Временное решение проблемы такое - формировать миграционые скрипты в pgCodeKeeper, а выполнять их в другом инструменте.