Skip to content

Instantly share code, notes, and snippets.

@nickreese
Last active December 22, 2021 03:34
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nickreese/8eeb01e2f73fec2bf2dbfecf5dc6dd73 to your computer and use it in GitHub Desktop.
Save nickreese/8eeb01e2f73fec2bf2dbfecf5dc6dd73 to your computer and use it in GitHub Desktop.
Sync Postgres Production with Local Database
#!/bin/bash
if [ -f .env ]
then
export $(cat .env | sed 's/#.*//g' | xargs)
fi
echo 'Dropping the local db';
PGPASSWORD=$LOCAL_POSTGRES_PASSWORD psql -h $LOCAL_POSTGRES_HOST -p $LOCAL_POSTGRES_PORT -U $LOCAL_POSTGRES_USER $LOCAL_POSTGRES_DB -c "DROP DATABASE $LOCAL_POSTGRES_DB;"
wait
echo 'Starting Production to Local DB sync';
PGPASSWORD=$PROD_POSTGRES_PASSWORD pg_dump --create --clean --no-owner --format plain -U $PROD_POSTGRES_USER -h $PROD_POSTGRES_HOST -p $PROD_POSTGRES_PORT -d $PROD_POSTGRES_DB | PGPASSWORD=$LOCAL_POSTGRES_PASSWORD psql -h $LOCAL_POSTGRES_HOST -p $LOCAL_POSTGRES_PORT -U $LOCAL_POSTGRES_USER $LOCAL_POSTGRES_DB
echo 'Finished Database Sync'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment