были созданы кастомные схемы данных, в одну из них добавлено расширение uuid-ossp из которого используется функция uuid_generate_v4()
я переношу эту бд в Managed Service for PostgreSQL, ,создал кластер, в нем бд, расширение uuid-ossp и пользователей.
При попытке развернуть бэкап ловлю вот такую ошибку:
Unable to apply DDL of type 'TABLE', ....', error: ERROR: function main.uuid_generate_v4() does not exist (SQLSTATE 42883)
здесь main это схема, в которой было добавлено расширение uuid-ossp.
снимал бэкап в виде SQL, смотрел в него, там везде обращения к этой функции идут в виде
main.uuid_generate_v4()
.
Когда в Managed Service for PostgreSQL добавляешь расширение в базу (а там это можно сделать только через интерфейс облака), оно добавляется в стандартную схему public, и обращаться к нужной функции можно только через public.uuid_generate_v4()
как один из вариантов решения проблемы вижу открыть бэкап в формате SQL, сделать в нем замену и накатить его на сервис, но может это как то можно пофиксить попроще?
А почему бы не перейти на gen_random_uuid ? Он доступен из коробки, насколько я помню, без расширенный. Генерирует v4
Однозначно ответить на этот вопрос не могу
Обсуждают сегодня