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
if [[ -z "$1" ]]; then
echo "Usage: $0 <environment> <version>"
echo "Usage: $0 <environment> up-to|down-to <version>"
exit 1
fi
ENVR="$1"
@@ -12,57 +12,53 @@ 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>"
echo "Usage: $0 <environment> up-to|down-to <version>"
exit 1
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]+$'
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: ).*')
BACKUP_FILE=$(/bin/bash ./backup.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"
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"
# back to real code
# ####################################################################
cp $BACKUP_FILE $UPDATED_BACKUP
# ####################################################################
# do migration
failed_cleanup() {
rm $UPDATED_BACKUP
}
trap 'if [ $? -ne 0 ]; then failed_cleanup; fi' EXIT
echo "Migration in progress"
# TODO: if failed delete updated_backup
echo $UPDATED_BACKUP $CMD $VER
./psmigrate $UPDATED_BACKUP $CMD $VER
if [ $? -ne 0 ]; then
echo "Migration failed"
exit 1
fi
echo "Migration completed"
# end migration
# ####################################################################
cp $UPDATED_BACKUP $UPDATED_COPY
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 {
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)
if err != nil {
log.Fatalf("Failed to open database: %v", err)