Last active
August 27, 2019 07:00
-
-
Save CNanninga/2f65fa5f7425b68f293774665d8cfbca to your computer and use it in GitHub Desktop.
Magento 2 Production to Stage Clone
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
SOURCE_DB_NAME="example_prod" | |
SOURCE_ROOT_DIR="/var/www/prod" | |
SOURCE_DUMP_FILENAME=example_prod_$(date +%F).sql.gz | |
TARGET_DB_NAME="example_stage" | |
TARGET_ROOT_DIR="/var/www/stage" | |
TARGET_SSH_USER="www-stage" | |
TARGET_SSH_HOST="stage.example.com" | |
TARGET_DUMP_FILENAME=example_stage_$(date +%F).sql.gz | |
STRIP_FLAG="@log @trade @search" | |
echo "Dumping database" | |
mr --root-dir=${SOURCE_ROOT_DIR}/current db:dump --stdout --strip="${STRIP_FLAG}" | pv | gzip > ${SOURCE_ROOT_DIR}/${SOURCE_DUMP_FILENAME} | |
echo "Transferring data to stage" | |
scp ${SOURCE_ROOT_DIR}/${SOURCE_DUMP_FILENAME} ${TARGET_SSH_USER}@${TARGET_SSH_HOST}:${TARGET_ROOT_DIR}/ | |
rm -f ${SOURCE_ROOT_DIR}/${SOURCE_DUMP_FILENAME} | |
echo "Enabling maintenance on stage" | |
ssh ${TARGET_SSH_USER}@${TARGET_SSH_HOST} "\ | |
cd ${TARGET_ROOT_DIR}/current \ | |
bin/magento maintenance:enable \ | |
bin/magento cache:flush \ | |
" | |
echo "Backing up database on stage" | |
ssh -t ${TARGET_SSH_USER}@${TARGET_SSH_HOST} "\ | |
mr --root-dir=${TARGET_ROOT_DIR}/current db:dump --stdout | pv | gzip > ${TARGET_ROOT_DIR}/bak/${TARGET_DUMP_FILENAME} | |
" | |
echo "Importing database" | |
ssh -t ${TARGET_SSH_USER}@${TARGET_SSH_HOST} "\ | |
pv ${TARGET_ROOT_DIR}/${SOURCE_DUMP_FILENAME} | gunzip | mysql -D ${TARGET_DB_NAME} --default-character-set=utf8 \ | |
" | |
ssh ${TARGET_SSH_USER}@${TARGET_SSH_HOST} "rm -f ${TARGET_ROOT_DIR}/${SOURCE_DUMP_FILENAME}" | |
echo "Syncing media" | |
rsync -avz --no-owner --no-group --delete --exclude="catalog/product/cache" --exclude="cache/*" --exclude="/tmp/*" ${SOURCE_ROOT_DIR}/current/pub/media/ ${TARGET_SSH_USER}@${TARGET_SSH_HOST}:${TARGET_ROOT_DIR}/current/pub/media/ | |
echo "Setting config values" | |
ssh ${TARGET_SSH_USER}@${TARGET_SSH_HOST} "\ | |
cd ${TARGET_ROOT_DIR}/current | |
mr config:store:set --encrypt payment/authnetcim/login EXAMPLETESTLOGIN | |
mr config:store:set payment/authnetcim/test 1 | |
mr config:store:set signifyd/general/key '' | |
mr config:store:set fraud_protection/signifyd/active 0 | |
" | |
echo "Clearing caches and reindexing" | |
ssh ${TARGET_SSH_USER}@${TARGET_SSH_HOST} "\ | |
cd ${TARGET_ROOT_DIR}/current | |
bin/magento app:config:import | |
bin/magento cache:flush | |
bin/magento cache:clean | |
bin/magento setup:db-schema:upgrade | |
bin/magento setup:db-data:upgrade | |
bin/magento indexer:reindex | |
bin/magento maintenance:disable | |
bin/magento cache:flush | |
" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment