Finishing migration scripts
This commit is contained in:
@@ -1,10 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Exit on error
|
||||
set -e
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "Usage: $0 <environment> up-to|down-to <version>"
|
||||
echo "Usage: $0 <environment> <version>"
|
||||
exit 1
|
||||
fi
|
||||
ENVR="$1"
|
||||
@@ -13,37 +10,47 @@ if [[ "$ENVR" != "production" && "$ENVR" != "staging" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "Usage: $0 <environment> up-to|down-to <version>"
|
||||
echo "Usage: $0 <environment> <version>"
|
||||
exit 1
|
||||
fi
|
||||
CMD="$2"
|
||||
if [[ "$CMD" != "up-to" && "$CMD" != "down-to" ]]; then
|
||||
echo "Error: Command must be 'up-to' or 'down-to'."
|
||||
exit 1
|
||||
fi
|
||||
if [[ -z "$3" ]]; then
|
||||
echo "Usage: $0 <environment> up-to|down-to <version>"
|
||||
exit 1
|
||||
fi
|
||||
VER="$3"
|
||||
TGT_VER="$2"
|
||||
re='^[0-9]+$'
|
||||
if ! [[ $VER =~ $re ]] ; then
|
||||
echo "Error: version not a number" >&2; exit 1
|
||||
if ! [[ $TGT_VER =~ $re ]] ; then
|
||||
echo "Error: version not a number" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BACKUP_FILE=$(/bin/bash ./backup.sh "$ENVR" "$VER" | grep -oP '(?<=Backup created: ).*')
|
||||
if [[ "$BACKUP_FILE" == "" ]]; then
|
||||
BACKUP_OUTPUT=$(/bin/bash ./backup.sh "$ENVR" 2>&1)
|
||||
echo "$BACKUP_OUTPUT"
|
||||
if [[ $? -ne 0 ]]; then
|
||||
exit 1
|
||||
fi
|
||||
BACKUP_FILE=$(echo "$BACKUP_OUTPUT" | grep -oP '(?<=Backup created: ).*')
|
||||
if [[ -z "$BACKUP_FILE" ]]; then
|
||||
echo "Error: backup failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FILE_NAME=${BACKUP_FILE##*/}
|
||||
CUR_VER=${FILE_NAME%%-*}
|
||||
if [[ $((+$TGT_VER)) == $((+$CUR_VER)) ]]; then
|
||||
echo "Version same, skipping migration"
|
||||
exit 0
|
||||
fi
|
||||
if [[ $((+$TGT_VER)) > $((+$CUR_VER)) ]]; then
|
||||
CMD="up-to"
|
||||
fi
|
||||
if [[ $((+$TGT_VER)) < $((+$CUR_VER)) ]]; then
|
||||
CMD="down-to"
|
||||
fi
|
||||
TIMESTAMP=$(date +"%Y-%m-%d-%H%M")
|
||||
|
||||
ACTIVE_DIR="/home/deploy/$ENVR"
|
||||
DATA_DIR="/home/deploy/data/$ENVR"
|
||||
BACKUP_DIR="/home/deploy/data/backups/$ENVR"
|
||||
UPDATED_BACKUP="$BACKUP_DIR/${VER}-${TIMESTAMP}.db"
|
||||
UPDATED_COPY="$DATA_DIR/${VER}.db"
|
||||
UPDATED_LINK="$ACTIVE_DIR/${VER}.db"
|
||||
UPDATED_BACKUP="$BACKUP_DIR/${TGT_VER}-${TIMESTAMP}.db"
|
||||
UPDATED_COPY="$DATA_DIR/${TGT_VER}.db"
|
||||
UPDATED_LINK="$ACTIVE_DIR/${TGT_VER}.db"
|
||||
|
||||
cp $BACKUP_FILE $UPDATED_BACKUP
|
||||
failed_cleanup() {
|
||||
@@ -51,9 +58,8 @@ failed_cleanup() {
|
||||
}
|
||||
trap 'if [ $? -ne 0 ]; then failed_cleanup; fi' EXIT
|
||||
|
||||
echo "Migration in progress"
|
||||
echo $UPDATED_BACKUP $CMD $VER
|
||||
./psmigrate $UPDATED_BACKUP $CMD $VER
|
||||
echo "Migration in progress from $CUR_VER to $TGT_VER"
|
||||
./prmigrate $UPDATED_BACKUP $CMD $TGT_VER
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Migration failed"
|
||||
exit 1
|
||||
|
||||
Reference in New Issue
Block a user