First version of migrate script (unfinished)

This commit is contained in:
2025-02-20 22:09:35 +11:00
parent 4b64dccbda
commit 8bdeafee32
2 changed files with 108 additions and 0 deletions

70
deploy/db/migrate.sh Executable file
View File

@@ -0,0 +1,70 @@
#!/bin/bash
# Exit on error
set -e
if [[ -z "$1" ]]; then
echo "Usage: $0 <environment> <version>"
exit 1
fi
ENVR="$1"
if [[ "$ENVR" != "production" && "$ENVR" != "staging" ]]; then
echo "Error: environment must be 'production' or 'staging'."
exit 1
fi
if [[ -z "$2" ]]; then
echo "Usage: $0 <environment> <version>"
exit 1
fi
VER="$2"
re='^[0-9]+$'
if ! [[ $VER =~ $re ]] ; then
echo "Error: version not a number" >&2; exit 1
fi
BACKUP_FILE=$(/bin/bash ./test.sh "$ENVR" "$VER" | grep -oP '(?<=Backup created: ).*')
if [[ "$BACKUP_FILE" == "" ]]; then
echo "Error: backup failed"
exit 1
fi
# Get current datetime in YYYY-MM-DD-HHMM format
TIMESTAMP=$(date +"%Y-%m-%d-%H%M")
# REAL VALUES
# 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"
# #####################################################################
# TEST VALUES
ACTIVE_DIR="./deploy/$ENVR"
DATA_DIR="./deploy/data/$ENVR"
BACKUP_DIR="./deploy/data/backups/$ENVR"
UPDATED_BACKUP="$BACKUP_DIR/${VER}-${TIMESTAMP}.db"
UPDATED_COPY="$DATA_DIR/${VER}.db"
UPDATED_LINK="$ACTIVE_DIR/${VER}.db"
# back to real code
# ####################################################################
cp $BACKUP_FILE $UPDATED_BACKUP
# ####################################################################
# do migration
echo "Migration in progress"
# TODO: if failed delete updated_backup
echo "Migration completed"
# end migration
# ####################################################################
cp $UPDATED_BACKUP $UPDATED_COPY
ln -s $UPDATED_COPY $UPDATED_LINK
echo "Upgraded database linked and ready for deploy"
exit 0

38
deploy/db/test.sh Executable file
View File

@@ -0,0 +1,38 @@
#!/bin/bash
# Exit on error
set -e
if [[ -z "$1" ]]; then
echo "Usage: $0 <environment>"
exit 1
fi
ENVR="$1"
if [[ "$ENVR" != "production" && "$ENVR" != "staging" ]]; then
echo "Error: environment must be 'production' or 'staging'."
exit 1
fi
echo "random output"
echo "random output"
echo "random output"
echo "random output"
echo "random output"
echo "random output"
echo "random output"
echo "random output"
echo "random output"
echo "random output"
echo "random output"
echo "random output"
echo "random output"
echo "Error"
FILE="00001-2025-02-19-0927.db"
ACTIVE_DIR="./deploy/$ENVR"
DATA_DIR="./deploy/data/$ENVR"
BACKUP_DIR="./deploy/data/backups/$ENVR"
mkdir -p $ACTIVE_DIR
mkdir -p $DATA_DIR
mkdir -p $BACKUP_DIR
touch "$BACKUP_DIR/$FILE"
echo "Backup created: $BACKUP_DIR/$FILE"