Finished migrate script
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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"
|
|
||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user