Skip to content

Instantly share code, notes, and snippets.

@ironhouzi
Created January 24, 2016 17:19
Show Gist options
  • Save ironhouzi/faf756d157b639aedde1 to your computer and use it in GitHub Desktop.
Save ironhouzi/faf756d157b639aedde1 to your computer and use it in GitHub Desktop.
LOCAL_DOCKER_IP = 192.168.99.100
STAGING_IP = xx.xxx.xxx.xxx
PRODUCTION_IP = xx.xxx.xxx.xxx
STAGING_DB_ID = $(shell ssh root@xx.xxx.xxx.xxx "docker ps | grep database" | awk '{print $$1}')
PRODUCTION_DB_ID = $(shell ssh root@xx.xxx.xxx.xxx "docker ps | grep database" | awk '{print $$1}')
download_production_db:
psql -h $(LOCAL_DOCKER_IP) -p 5432 -U postgres -c 'drop database estage_manager'
psql -h $(LOCAL_DOCKER_IP) -p 5432 -U postgres -c 'create database estage_manager'
ssh root@$(PRODUCTION_IP) "docker exec $(PRODUCTION_DB_ID) su postgres -c 'pg_dump estage_manager'" | psql -h $(LOCAL_DOCKER_IP) -p 5432 -U postgres estage_manager
download_staging_db:
psql -h $(LOCAL_DOCKER_IP) -p 5432 -U postgres -c 'drop database estage_manager'
psql -h $(LOCAL_DOCKER_IP) -p 5432 -U postgres -c 'create database estage_manager'
ssh root@$(STAGING_IP) "docker exec $(STAGING_DB_ID) su postgres -c 'pg_dump estage_manager'" | psql -h $(LOCAL_DOCKER_IP) -p 5432 -U postgres estage_manager
upload_production_db_to_staging_db:
ssh root@$(PRODUCTION_IP) "docker exec $(PRODUCTION_DB_ID) su postgres -c 'pg_dump estage_manager'" > temp.sql
scp temp.sql root@$(STAGING_IP):/temp.sql
ssh root@$(STAGING_IP) "docker cp /temp.sql $(STAGING_DB_ID):/temp.sql"
ssh root@$(STAGING_IP) "docker exec $(STAGING_DB_ID) su postgres -c 'dropdb estage_manager'"
ssh root@$(STAGING_IP) "docker exec $(STAGING_DB_ID) su postgres -c 'createdb estage_manager'"
ssh root@$(STAGING_IP) "docker exec $(STAGING_DB_ID) su postgres -c 'psql estage_manager < /temp.sql'"
rm temp.sql
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment