Finished migrate script

This commit is contained in:
2025-02-20 23:56:55 +11:00
parent 79838b4aae
commit 5d0a26579b
3 changed files with 30 additions and 70 deletions

View File

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

View File

@@ -1,38 +0,0 @@
#!/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"

View File

@@ -32,7 +32,9 @@ func main() {
if err != nil { if err != nil {
log.Fatalf("Invalid version number: %v", err) log.Fatalf("Invalid version number: %v", err)
} }
if _, err := os.Stat(filePath); os.IsNotExist(err) {
log.Fatalf("Database file does not exist: %v", filePath)
}
db, err := sql.Open("sqlite", filePath) db, err := sql.Open("sqlite", filePath)
if err != nil { if err != nil {
log.Fatalf("Failed to open database: %v", err) log.Fatalf("Failed to open database: %v", err)