From 6cd41ed71f65519a82a0438805d4f4bc664766a3 Mon Sep 17 00:00:00 2001 From: Accusys Date: Wed, 13 May 2026 22:05:35 +0800 Subject: [PATCH] fix: deploy.sh pre-clean all tables + SCHEMA var for public/dev --- docs_v1.0/M4_HANDOVER/deploy.sh | 35 ++++++++++++++++++++++----------- scripts/deploy_package.sh | 35 ++++++++++++++++++++++----------- 2 files changed, 48 insertions(+), 22 deletions(-) diff --git a/docs_v1.0/M4_HANDOVER/deploy.sh b/docs_v1.0/M4_HANDOVER/deploy.sh index b1a1f54..e8ad97b 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: bash deploy.sh [--db-only] [--skip-video] +# Usage: SCHEMA=public bash deploy.sh set -euo pipefail DIR="$(cd "$(dirname "$0")" && pwd)" @@ -8,8 +8,10 @@ UUID=$(basename "$DIR") PG_BIN="${PG_BIN:-/Users/accusys/pgsql/18.3/bin}" DB_NAME="${DB_NAME:-momentry}" DB_USER="${DB_USER:-accusys}" +SCHEMA="${SCHEMA:-dev}" 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" @@ -62,10 +64,21 @@ if [ $MISSING -eq 1 ]; then fi echo " ✅ Package verified" -# 2. Pre-clean: remove existing identities for this file (avoids UNIQUE(name) conflicts on COPY) -echo "[2/9] Pre-cleaning existing identities for this file..." -"$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -c "DELETE FROM dev.identities WHERE file_uuid = '$UUID'" > /dev/null 2>&1 -echo " ✅ Cleared identities for $UUID" +# 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 + DELETE FROM ${P}tkg_edges WHERE file_uuid = '$UUID'; + DELETE FROM ${P}tkg_nodes WHERE file_uuid = '$UUID'; + DELETE FROM ${P}identity_bindings WHERE identity_id IN ( + SELECT id FROM ${P}identities WHERE file_uuid = '$UUID' OR name LIKE 'PERSON_${UUID:0:8}%' + ); + DELETE FROM ${P}identities WHERE file_uuid = '$UUID'; + DELETE FROM ${P}face_detections WHERE file_uuid = '$UUID'; + DELETE FROM ${P}chunk_vectors WHERE uuid = '$UUID'; + DELETE FROM ${P}chunk WHERE file_uuid = '$UUID'; + DELETE FROM ${P}videos WHERE file_uuid = '$UUID'; +EOSQL +echo " ✅ Cleared existing data for $UUID" # 3. Import each table file in dependency order (FK constraints) echo "[3/9] Importing DB data (per-table)..." @@ -103,7 +116,7 @@ fi # 5. Set video status to completed (package is fully processed) echo "[5/9] Setting deployment status..." -"$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -c "UPDATE dev.videos SET status = 'completed' WHERE file_uuid = '$UUID'" > /dev/null 2>&1 +"$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -c "UPDATE ${P}videos SET status = 'completed' WHERE file_uuid = '$UUID'" > /dev/null 2>&1 echo " ✅ Status set to 'completed'" # 6. Copy output files @@ -131,11 +144,11 @@ fi # 8. Verify deployment echo "[8/9] Verifying deployment..." -CHUNKS=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM dev.chunk WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") -FACES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM dev.face_detections WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") -IDENTS=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM dev.identities WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") -TKG_NODES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM dev.tkg_nodes WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") -TKG_EDGES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM dev.tkg_edges WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") +CHUNKS=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}chunk WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") +FACES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}face_detections WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") +IDENTS=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}identities WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") +TKG_NODES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}tkg_nodes WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") +TKG_EDGES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}tkg_edges WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") echo "" echo "=== Deploy Complete ===" diff --git a/scripts/deploy_package.sh b/scripts/deploy_package.sh index b1a1f54..e8ad97b 100644 --- a/scripts/deploy_package.sh +++ b/scripts/deploy_package.sh @@ -1,6 +1,6 @@ #!/bin/bash # Momentry Release Package — Deploy Script -# Usage: bash deploy.sh [--db-only] [--skip-video] +# Usage: SCHEMA=public bash deploy.sh set -euo pipefail DIR="$(cd "$(dirname "$0")" && pwd)" @@ -8,8 +8,10 @@ UUID=$(basename "$DIR") PG_BIN="${PG_BIN:-/Users/accusys/pgsql/18.3/bin}" DB_NAME="${DB_NAME:-momentry}" DB_USER="${DB_USER:-accusys}" +SCHEMA="${SCHEMA:-dev}" 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" @@ -62,10 +64,21 @@ if [ $MISSING -eq 1 ]; then fi echo " ✅ Package verified" -# 2. Pre-clean: remove existing identities for this file (avoids UNIQUE(name) conflicts on COPY) -echo "[2/9] Pre-cleaning existing identities for this file..." -"$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -c "DELETE FROM dev.identities WHERE file_uuid = '$UUID'" > /dev/null 2>&1 -echo " ✅ Cleared identities for $UUID" +# 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 + DELETE FROM ${P}tkg_edges WHERE file_uuid = '$UUID'; + DELETE FROM ${P}tkg_nodes WHERE file_uuid = '$UUID'; + DELETE FROM ${P}identity_bindings WHERE identity_id IN ( + SELECT id FROM ${P}identities WHERE file_uuid = '$UUID' OR name LIKE 'PERSON_${UUID:0:8}%' + ); + DELETE FROM ${P}identities WHERE file_uuid = '$UUID'; + DELETE FROM ${P}face_detections WHERE file_uuid = '$UUID'; + DELETE FROM ${P}chunk_vectors WHERE uuid = '$UUID'; + DELETE FROM ${P}chunk WHERE file_uuid = '$UUID'; + DELETE FROM ${P}videos WHERE file_uuid = '$UUID'; +EOSQL +echo " ✅ Cleared existing data for $UUID" # 3. Import each table file in dependency order (FK constraints) echo "[3/9] Importing DB data (per-table)..." @@ -103,7 +116,7 @@ fi # 5. Set video status to completed (package is fully processed) echo "[5/9] Setting deployment status..." -"$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -c "UPDATE dev.videos SET status = 'completed' WHERE file_uuid = '$UUID'" > /dev/null 2>&1 +"$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -c "UPDATE ${P}videos SET status = 'completed' WHERE file_uuid = '$UUID'" > /dev/null 2>&1 echo " ✅ Status set to 'completed'" # 6. Copy output files @@ -131,11 +144,11 @@ fi # 8. Verify deployment echo "[8/9] Verifying deployment..." -CHUNKS=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM dev.chunk WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") -FACES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM dev.face_detections WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") -IDENTS=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM dev.identities WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") -TKG_NODES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM dev.tkg_nodes WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") -TKG_EDGES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM dev.tkg_edges WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") +CHUNKS=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}chunk WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") +FACES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}face_detections WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") +IDENTS=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}identities WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") +TKG_NODES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}tkg_nodes WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") +TKG_EDGES=$("$PG_BIN/psql" -U "$DB_USER" -d "$DB_NAME" -t -A -c "SELECT COUNT(*) FROM ${P}tkg_edges WHERE file_uuid='$UUID'" 2>/dev/null || echo "?") echo "" echo "=== Deploy Complete ==="