feat: deploy.sh --force flag to skip overwrite confirmation
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Momentry Release Package — Deploy Script
|
# Momentry Release Package — Deploy Script
|
||||||
# Usage: SCHEMA=public bash deploy.sh
|
# Usage: SCHEMA=public bash deploy.sh [--force]
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
DIR="$(cd "$(dirname "$0")" && pwd)"
|
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
@@ -13,10 +13,12 @@ DEMO_DIR="${DEMO_DIR:-/Users/accusys/momentry/var/sftpgo/data/demo}"
|
|||||||
OUTPUT_DIR="${OUTPUT_DIR:-/Users/accusys/momentry/output_dev}"
|
OUTPUT_DIR="${OUTPUT_DIR:-/Users/accusys/momentry/output_dev}"
|
||||||
P="${SCHEMA}."
|
P="${SCHEMA}."
|
||||||
|
|
||||||
echo "=== Momentry Package Deploy ==="
|
# Parse --force flag
|
||||||
echo "UUID: $UUID"
|
FORCE=false
|
||||||
echo "Time: $(date '+%Y-%m-%d %H:%M:%S')"
|
for arg in "$@"; do
|
||||||
echo ""
|
[ "$arg" = "--force" ] && FORCE=true
|
||||||
|
done
|
||||||
|
|
||||||
echo "=== Momentry Package Deploy ==="
|
echo "=== Momentry Package Deploy ==="
|
||||||
echo "UUID: $UUID"
|
echo "UUID: $UUID"
|
||||||
echo "Time: $(date '+%Y-%m-%d %H:%M:%S')"
|
echo "Time: $(date '+%Y-%m-%d %H:%M:%S')"
|
||||||
@@ -64,6 +66,22 @@ if [ $MISSING -eq 1 ]; then
|
|||||||
fi
|
fi
|
||||||
echo " ✅ Package verified"
|
echo " ✅ Package verified"
|
||||||
|
|
||||||
|
# 1b. Check for existing data before pre-clean
|
||||||
|
EXISTING=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}videos WHERE file_uuid='$UUID'" 2>/dev/null || echo "0")
|
||||||
|
if [ "$EXISTING" -gt 0 ] && [ "$FORCE" = false ]; then
|
||||||
|
echo ""
|
||||||
|
echo " ⚠️ Existing data found for UUID $UUID ($EXISTING videos table rows)"
|
||||||
|
echo " This will DELETE all existing data for this UUID and re-import."
|
||||||
|
echo " Continue? [y/N] "
|
||||||
|
read -r CONFIRM
|
||||||
|
if [ "$CONFIRM" != "y" ] && [ "$CONFIRM" != "Y" ]; then
|
||||||
|
echo " ❌ Aborted by user"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
elif [ "$EXISTING" -gt 0 ] && [ "$FORCE" = true ]; then
|
||||||
|
echo " ⚠️ Existing data will be overwritten (--force)"
|
||||||
|
fi
|
||||||
|
|
||||||
# 2. Pre-clean: clear all data for this file (avoids PK/FK conflicts on COPY)
|
# 2. Pre-clean: clear all data for this file (avoids PK/FK conflicts on COPY)
|
||||||
echo "[2/9] Pre-cleaning existing data for this file..."
|
echo "[2/9] Pre-cleaning existing data for this file..."
|
||||||
"$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" <<-EOSQL > /dev/null 2>&1
|
"$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" <<-EOSQL > /dev/null 2>&1
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Momentry Release Package — Deploy Script
|
# Momentry Release Package — Deploy Script
|
||||||
# Usage: SCHEMA=public bash deploy.sh
|
# Usage: SCHEMA=public bash deploy.sh [--force]
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
DIR="$(cd "$(dirname "$0")" && pwd)"
|
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
@@ -13,10 +13,12 @@ DEMO_DIR="${DEMO_DIR:-/Users/accusys/momentry/var/sftpgo/data/demo}"
|
|||||||
OUTPUT_DIR="${OUTPUT_DIR:-/Users/accusys/momentry/output_dev}"
|
OUTPUT_DIR="${OUTPUT_DIR:-/Users/accusys/momentry/output_dev}"
|
||||||
P="${SCHEMA}."
|
P="${SCHEMA}."
|
||||||
|
|
||||||
echo "=== Momentry Package Deploy ==="
|
# Parse --force flag
|
||||||
echo "UUID: $UUID"
|
FORCE=false
|
||||||
echo "Time: $(date '+%Y-%m-%d %H:%M:%S')"
|
for arg in "$@"; do
|
||||||
echo ""
|
[ "$arg" = "--force" ] && FORCE=true
|
||||||
|
done
|
||||||
|
|
||||||
echo "=== Momentry Package Deploy ==="
|
echo "=== Momentry Package Deploy ==="
|
||||||
echo "UUID: $UUID"
|
echo "UUID: $UUID"
|
||||||
echo "Time: $(date '+%Y-%m-%d %H:%M:%S')"
|
echo "Time: $(date '+%Y-%m-%d %H:%M:%S')"
|
||||||
@@ -64,6 +66,22 @@ if [ $MISSING -eq 1 ]; then
|
|||||||
fi
|
fi
|
||||||
echo " ✅ Package verified"
|
echo " ✅ Package verified"
|
||||||
|
|
||||||
|
# 1b. Check for existing data before pre-clean
|
||||||
|
EXISTING=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}videos WHERE file_uuid='$UUID'" 2>/dev/null || echo "0")
|
||||||
|
if [ "$EXISTING" -gt 0 ] && [ "$FORCE" = false ]; then
|
||||||
|
echo ""
|
||||||
|
echo " ⚠️ Existing data found for UUID $UUID ($EXISTING videos table rows)"
|
||||||
|
echo " This will DELETE all existing data for this UUID and re-import."
|
||||||
|
echo " Continue? [y/N] "
|
||||||
|
read -r CONFIRM
|
||||||
|
if [ "$CONFIRM" != "y" ] && [ "$CONFIRM" != "Y" ]; then
|
||||||
|
echo " ❌ Aborted by user"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
elif [ "$EXISTING" -gt 0 ] && [ "$FORCE" = true ]; then
|
||||||
|
echo " ⚠️ Existing data will be overwritten (--force)"
|
||||||
|
fi
|
||||||
|
|
||||||
# 2. Pre-clean: clear all data for this file (avoids PK/FK conflicts on COPY)
|
# 2. Pre-clean: clear all data for this file (avoids PK/FK conflicts on COPY)
|
||||||
echo "[2/9] Pre-cleaning existing data for this file..."
|
echo "[2/9] Pre-cleaning existing data for this file..."
|
||||||
"$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" <<-EOSQL > /dev/null 2>&1
|
"$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" <<-EOSQL > /dev/null 2>&1
|
||||||
|
|||||||
Reference in New Issue
Block a user