26 lines
789 B
Bash
Executable File
26 lines
789 B
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Open an SSH tunnel that exposes prod Postgres on localhost:5433. Useful
|
|
# for running `psql`, `supabase db push`, or any GUI DB client against prod.
|
|
#
|
|
# The prod Postgres container only listens on the host's localhost:5432, so
|
|
# we need an SSH tunnel to reach it from the Mac. Tunnel stays open until
|
|
# Ctrl+C.
|
|
#
|
|
# Usage:
|
|
# ./scripts/prod/tunnel-db.sh
|
|
# # then in another terminal:
|
|
# psql -h localhost -p 5433 -U postgres -d postgres
|
|
|
|
set -euo pipefail
|
|
|
|
here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "${here}/config.sh"
|
|
|
|
local_port="${1:-5433}"
|
|
|
|
echo "tunnel: localhost:${local_port} → ${SSH_HOST}:localhost:5432"
|
|
echo "press Ctrl+C to close"
|
|
# shellcheck disable=SC2086
|
|
exec ssh ${SSH_OPTS} -N -L "${local_port}:localhost:5432" "${SSH_HOST}"
|