34 lines
752 B
Plaintext
34 lines
752 B
Plaintext
set -e
|
|
|
|
echo "== Creating subscriptions for all databases =="
|
|
|
|
for db in $(psql -Atqc "SELECT datname FROM pg_database WHERE datallowconn AND datname NOT IN ('template0','template1')"); do
|
|
echo "Processing DB: $db"
|
|
|
|
SLOT="migrate_slot_${db}"
|
|
SUB="migrate_sub_${db}"
|
|
|
|
psql -d "$db" -v ON_ERROR_STOP=1 <<SQL
|
|
DO \$\$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_subscription WHERE subname = '$SUB'
|
|
) THEN
|
|
CREATE SUBSCRIPTION $SUB
|
|
CONNECTION 'host=<%= @pg_host %> port=<%= @pg_port %> dbname=$db user=<%= @pg_user %> password=<%= @pg_pass %>'
|
|
PUBLICATION migrate_pub
|
|
WITH (
|
|
slot_name = '$SLOT',
|
|
create_slot = false,
|
|
copy_data = false,
|
|
enabled = true
|
|
);
|
|
END IF;
|
|
END
|
|
\$\$;
|
|
SQL
|
|
|
|
done
|
|
|
|
echo "== Done =="
|