Created
August 11, 2016 18:15
-
-
Save jrenggli/89cb1ce9515c8ce6d8246843fbf7bf72 to your computer and use it in GitHub Desktop.
Content Deployment for TYPO3 CMS from production/live to latest system. Could be adjusted to several systems.
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 | |
PWD=`pwd` | |
SOURCEPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )" | |
WORKSPACEPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd ../.. && pwd )" | |
TARGET_HOST=latest.example.org | |
TARGET_PORT=22 | |
TARGET_USER=www-data | |
TARGET_PATH=/home/www-data/typo3-latest/releases/current/ | |
TARGET_DBNAME=t3_latest | |
TARGET_DBUSER=t3_latest | |
TARGET_DBHOST=127.0.0.1 | |
TARGET_DBPASSWORD=mySuperSecretPassword | |
SOURCE_HOST=live.example.org | |
SOURCE_PORT=22 | |
SOURCE_USER=www-data | |
SOURCE_PATH=/home/www-data/typo3-live/releases/current/ | |
SOURCE_DBNAME=t3_live | |
SOURCE_DBUSER=t3_live | |
SOURCE_DBHOST=127.0.0.1 | |
SOURCE_DBPASSWORD=anotherSuperSecretPassword | |
# Copy fileadmin/uploads from source to target | |
ssh ${TARGET_USER}@${TARGET_HOST} -p${TARGET_PORT} -o ForwardAgent=yes "rsync -avz -e \"ssh -p${SOURCE_PORT}\" --delete-after ${SOURCE_USER}@${SOURCE_HOST}:${SOURCE_PATH}web/fileadmin/ ${TARGET_PATH}web/fileadmin" || exit 101 | |
ssh ${TARGET_USER}@${TARGET_HOST} -p${TARGET_PORT} -o ForwardAgent=yes "rsync -avz -e \"ssh -p${SOURCE_PORT}\" --delete-after ${SOURCE_USER}@${SOURCE_HOST}:${SOURCE_PATH}web/uploads/ ${TARGET_PATH}web/uploads" || exit 102 | |
# Delete all existing tables in target | |
ssh ${TARGET_USER}@${TARGET_HOST} -p${TARGET_PORT} "mysql --host=\"${TARGET_DBHOST}\" --user=\"${TARGET_DBUSER}\" --password=\"${TARGET_DBPASSWORD}\" --silent --skip-column-names -e \"SHOW TABLES;\" ${TARGET_DBNAME} | xargs -L1 -I% echo 'SET FOREIGN_KEY_CHECKS = 0; DROP TABLE \`%\`;' | mysql --host=\"${TARGET_DBHOST}\" --user=\"${TARGET_DBUSER}\" --password=\"${TARGET_DBPASSWORD}\" ${TARGET_DBNAME}" || exit 201 | |
# Copy database from source to target | |
ssh ${TARGET_USER}@${TARGET_HOST} -p${TARGET_PORT} -o ForwardAgent=yes "ssh ${SOURCE_USER}@${SOURCE_HOST} -p${SOURCE_PORT} \"mysqldump --host=\\\"${SOURCE_DBHOST}\\\" --user=\\\"${SOURCE_DBUSER}\\\" --password=\\\"${SOURCE_DBPASSWORD}\\\" ${SOURCE_DBNAME}\" > ${SOURCE_DBNAME}.sql" || exit 301 | |
ssh ${TARGET_USER}@${TARGET_HOST} -p${TARGET_PORT} "cat ${SOURCE_DBNAME}.sql | mysql --host=\"${TARGET_DBHOST}\" --user=\"${TARGET_DBUSER}\" --password=\"${TARGET_DBPASSWORD}\" ${TARGET_DBNAME}" || exit 302 | |
ssh ${TARGET_USER}@${TARGET_HOST} -p${TARGET_PORT} "rm ${SOURCE_DBNAME}.sql" || exit 303 | |
ssh ${TARGET_USER}@${TARGET_HOST} "cd ${TARGET_PATH} && Build/init.sh" || exit 401 | |
echo done. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment