Files
Inventory/scripts/migrate-inventory-data.sh

46 lines
968 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SOURCE_DB="${SOURCE_DB:-inventory_data}"
TARGET_DB="${TARGET_DB:-inventory}"
PGHOST="${PGHOST:-localhost}"
PGPORT="${PGPORT:-5433}"
PGUSER="${PGUSER:-postgres}"
PGPASSWORD="${PGPASSWORD:-postgres}"
DUMP_FILE="${DUMP_FILE:-/tmp/inventory_data_dump.sql}"
export PGPASSWORD
EXCLUDE_TABLES=(
"doctrine_migration_versions"
"migration_versions"
"_prisma_migrations"
"profiles"
)
EXCLUDE_ARGS=()
for table in "${EXCLUDE_TABLES[@]}"; do
EXCLUDE_ARGS+=(--exclude-table-data="$table")
done
echo "Dumping data from ${SOURCE_DB}..."
pg_dump \
--data-only \
--inserts \
--no-owner \
--no-privileges \
"${EXCLUDE_ARGS[@]}" \
-h "${PGHOST}" \
-p "${PGPORT}" \
-U "${PGUSER}" \
"${SOURCE_DB}" > "${DUMP_FILE}"
echo "Restoring data into ${TARGET_DB}..."
psql \
-h "${PGHOST}" \
-p "${PGPORT}" \
-U "${PGUSER}" \
"${TARGET_DB}" < "${DUMP_FILE}"
echo "Done. Data copied from ${SOURCE_DB} to ${TARGET_DB}."