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})"