Я пытаюсь настроить публикацию в базе данных PostgreSQL 10 для логической репликации.
База данных используется для веб-сайта Django, и все таблицы в настоящее время находятся в одной схеме - public
. Я планирую обновлять структуру базы данных с помощью миграций Django, поэтому мне нужно исключить некоторые таблицы из публикации PostgreSQL, а именно все, которые начинаются с django
.
Я могу получить полный список таблиц, которые мне нужно реплицировать, используя запрос
SELECT tablename FROM pg_catalog.pg_tables
WHERE schemaname='public' and tablename not like 'django%';
Таблицы добавляются в публикацию с использованием запроса
ALTER PUBLICATION my_publication ADD TABLE table0, table1;
Как я могу перенаправить вывод моего SELECT
запроса на указанный выше ALTER PUBLICATION
запрос?
Было бы также неплохо, если бы уже добавленные таблицы были пропущены вместо прерывания выполнения всего запроса ALTER PUBLICATION
.
В настоящий момент я думаю, что мне придется использовать PL / pgSQL - процедурный язык SQL . Но, может быть, есть лучший / более простой способ редактировать публикацию, используя только запросы?