mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-04 22:16:08 +00:00
@@ -4,45 +4,48 @@
|
||||
# Useful for when you want to test a migration against production data, or see
|
||||
# the effect of codebase changes on real-life data
|
||||
|
||||
# Usage: script/mirror_db.sh [ofn-staging1|ofn-staging2|ofn-prod]
|
||||
|
||||
set -e
|
||||
|
||||
HOST="$1"
|
||||
BUCKET="$2"
|
||||
: ${DB_USER='ofn_user'}
|
||||
: ${DB_DATABASE='openfoodnetwork'}
|
||||
|
||||
DB_OPTIONS=(
|
||||
--exclude-table-data=sessions
|
||||
--exclude-table-data=spree_log_entries
|
||||
--exclude-table-data=spree_state_changes
|
||||
--no-acl
|
||||
)
|
||||
|
||||
if [ -z "$HOST" ]; then
|
||||
echo "[Error] SSH host missing.
|
||||
Usage: $0 openfoodnetwork@openfoodnetwork.org.au" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if hash zeus 2>/dev/null && [ -e .zeus.sock ]; then
|
||||
RAILS_RUN='zeus r'
|
||||
else
|
||||
RAILS_RUN='bundle exec rails runner'
|
||||
fi
|
||||
|
||||
if [[ $1 != 'ofn-no' ]]; then
|
||||
DB_USER='openfoodweb'
|
||||
DB_DATABASE='openfoodweb_production'
|
||||
else
|
||||
DB_USER='ofn_user'
|
||||
DB_DATABASE='openfoodnetwork'
|
||||
fi
|
||||
|
||||
DB_OPTIONS='--exclude-table-data=sessions'
|
||||
|
||||
# -- Mirror database
|
||||
echo "Mirroring database..."
|
||||
echo "drop database open_food_network_dev" | psql -h localhost -U ofn open_food_network_test
|
||||
echo "create database open_food_network_dev" | psql -h localhost -U ofn open_food_network_test
|
||||
ssh $1 "pg_dump -h localhost -U $DB_USER $DB_DATABASE $DB_OPTIONS |gzip" |gunzip |psql -h localhost -U ofn open_food_network_dev
|
||||
|
||||
dropdb -h localhost -U ofn open_food_network_dev
|
||||
createdb -h localhost -U ofn open_food_network_dev
|
||||
ssh -C "$HOST" "pg_dump -h localhost -U $DB_USER $DB_DATABASE ${DB_OPTIONS[@]}" | psql -h localhost -U ofn open_food_network_dev
|
||||
|
||||
# -- Disable S3
|
||||
echo "Preparing mirrored database..."
|
||||
$RAILS_RUN script/prepare_imported_db.rb
|
||||
|
||||
|
||||
# -- Mirror images
|
||||
if hash aws 2>/dev/null; then
|
||||
if [ -n "$BUCKET" ] && hash aws 2>/dev/null; then
|
||||
echo "Mirroring images..."
|
||||
BUCKET=`echo $1 | sed s/-/_/ | sed "s/\\([0-9]\\)/_\1/" | sed s/prod/production/`
|
||||
aws s3 sync s3://$BUCKET/public public/
|
||||
aws s3 sync "s3://$BUCKET/public public/"
|
||||
|
||||
else
|
||||
echo "Please install the AWS CLI tools so that I can copy the images from $1 for you."
|
||||
echo "Please install the AWS CLI tools so that I can copy the images from $BUCKET for you."
|
||||
echo "eg. sudo easy_install awscli"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user