From 6014db3c81c3b6f89a62fa173618de8fca528ac2 Mon Sep 17 00:00:00 2001 From: wowlikon Date: Sat, 31 Jan 2026 01:30:07 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=80=D0=B5=D0=BF=D0=BB=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup-replication.sh | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/setup-replication.sh b/setup-replication.sh index e3d7acb..349c604 100644 --- a/setup-replication.sh +++ b/setup-replication.sh @@ -36,6 +36,20 @@ BEGIN END \$\$; EOF +echo "Проверяем/создаем публикацию..." + +PUB_EXISTS=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h db -U "${POSTGRES_USER}" -d "${POSTGRES_DB}" -tAc "SELECT COUNT(*) FROM pg_publication WHERE pubname = 'all_tables_pub';") + +if [ "$PUB_EXISTS" -gt 0 ]; then + echo "Публикация уже существует" +else + echo "Создаем публикацию..." + PGPASSWORD="${POSTGRES_PASSWORD}" psql -h db -U "${POSTGRES_USER}" -d "${POSTGRES_DB}" </dev/null || echo "0") + +if [ "$REMOTE_PUB" -eq 0 ]; then + echo "ВНИМАНИЕ: На удалённом хосте нет публикации 'all_tables_pub'!" + echo "Подписка не будет создана. Сначала запустите скрипт на удалённом хосте." + exit 0 +fi + EXISTING=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h db -U "${POSTGRES_USER}" -d "${POSTGRES_DB}" -tAc "SELECT COUNT(*) FROM pg_subscription WHERE subname = 'sub_from_remote';") if [ "$EXISTING" -gt 0 ]; then @@ -73,5 +96,6 @@ EOF fi echo "" -echo "Репликация настроена!" -echo "Этот узел (${NODE_ID}) теперь синхронизирован с ${REMOTE_HOST}" +echo "=== Репликация настроена! ===" +echo "Публикация: all_tables_pub (другие могут подписаться на нас)" +echo "Подписка: sub_from_remote (мы получаем данные от ${REMOTE_HOST})"