diff --git a/docs_v1.0/M4_HANDOVER/deploy.sh b/docs_v1.0/M4_HANDOVER/deploy.sh index e8ad97b..4d40527 100644 --- a/docs_v1.0/M4_HANDOVER/deploy.sh +++ b/docs_v1.0/M4_HANDOVER/deploy.sh @@ -1,6 +1,6 @@ #!/bin/bash # Momentry Release Package — Deploy Script -# Usage: SCHEMA=public bash deploy.sh +# Usage: SCHEMA=public bash deploy.sh [--force] set -euo pipefail 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}" P="${SCHEMA}." -echo "=== Momentry Package Deploy ===" -echo "UUID: $UUID" -echo "Time: $(date '+%Y-%m-%d %H:%M:%S')" -echo "" +# Parse --force flag +FORCE=false +for arg in "$@"; do + [ "$arg" = "--force" ] && FORCE=true +done + echo "=== Momentry Package Deploy ===" echo "UUID: $UUID" echo "Time: $(date '+%Y-%m-%d %H:%M:%S')" @@ -64,6 +66,22 @@ if [ $MISSING -eq 1 ]; then fi 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) echo "[2/9] Pre-cleaning existing data for this file..." "$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" <<-EOSQL > /dev/null 2>&1 diff --git a/scripts/deploy_package.sh b/scripts/deploy_package.sh index e8ad97b..4d40527 100644 --- a/scripts/deploy_package.sh +++ b/scripts/deploy_package.sh @@ -1,6 +1,6 @@ #!/bin/bash # Momentry Release Package — Deploy Script -# Usage: SCHEMA=public bash deploy.sh +# Usage: SCHEMA=public bash deploy.sh [--force] set -euo pipefail 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}" P="${SCHEMA}." -echo "=== Momentry Package Deploy ===" -echo "UUID: $UUID" -echo "Time: $(date '+%Y-%m-%d %H:%M:%S')" -echo "" +# Parse --force flag +FORCE=false +for arg in "$@"; do + [ "$arg" = "--force" ] && FORCE=true +done + echo "=== Momentry Package Deploy ===" echo "UUID: $UUID" echo "Time: $(date '+%Y-%m-%d %H:%M:%S')" @@ -64,6 +66,22 @@ if [ $MISSING -eq 1 ]; then fi 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) echo "[2/9] Pre-cleaning existing data for this file..." "$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" <<-EOSQL > /dev/null 2>&1