WIP Prepare postgres for migration by replication
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
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 =="
|
||||
Reference in New Issue
Block a user