mirror of
https://github.com/absmach/magistrala.git
synced 2026-06-22 20:00:22 +00:00
61d0427898
Signed-off-by: dusan <borovcanindusan1@gmail.com>
52 lines
1.7 KiB
Bash
Executable File
52 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Copyright (c) Abstract Machines
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
####
|
|
## The script helps to copy tables from one database to another database
|
|
## This script can be used to synchronize domains and domains roles tables to groups, channels and clients database
|
|
## and groups and groups roles to channels and clients database
|
|
####
|
|
|
|
set -e
|
|
set -o pipefail
|
|
|
|
|
|
# Define source and target database connection details
|
|
SRC_DB_HOST="localhost"
|
|
SRC_DB_PORT="6003"
|
|
SRC_DB_USER="magistrala"
|
|
SRC_DB_PASSWORD="magistrala"
|
|
SRC_DB_NAME="domains"
|
|
TABLENAME_PREFIX=domains
|
|
|
|
DEST_DB_HOST="localhost"
|
|
DEST_DB_PORT="6005"
|
|
DEST_DB_USER="magistrala"
|
|
DEST_DB_PASSWORD="magistrala"
|
|
DEST_DB_NAME="channels"
|
|
|
|
# List of tables to copy
|
|
TABLES=("$TABLENAME_PREFIX" $TABLENAME_PREFIX"_roles" $TABLENAME_PREFIX"_role_actions" $TABLENAME_PREFIX"_role_members" )
|
|
|
|
|
|
# Loop through each table and copy data
|
|
for TABLE_NAME in "${TABLES[@]}"; do
|
|
echo "Copying data from $SRC_DB_NAME.$TABLE_NAME to $DEST_DB_NAME.$TABLE_NAME..."
|
|
|
|
# Set the source password and execute the COPY command
|
|
PGPASSWORD="$SRC_DB_PASSWORD" psql -h "$SRC_DB_HOST" -p "$SRC_DB_PORT" -U "$SRC_DB_USER" -d "$SRC_DB_NAME" -c "COPY $TABLE_NAME TO STDOUT" | \
|
|
# Set the target password and execute the TRUNCATE table and COPY commands
|
|
PGPASSWORD="$DEST_DB_PASSWORD" psql -h "$DEST_DB_HOST" -p "$DEST_DB_PORT" -U "$DEST_DB_USER" -d "$DEST_DB_NAME" -c "TRUNCATE TABLE $TABLE_NAME CASCADE; COPY $TABLE_NAME FROM STDIN"
|
|
|
|
# Check for errors
|
|
if [ $? -ne 0 ]; then
|
|
echo "Error: Failed copy data for table $TABLE_NAME. Exiting."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Table $TABLE_NAME successfully copied."
|
|
done
|
|
|
|
echo "All tables copied successfully!"
|