migrate.sh (1871B)
1 #!/bin/bash 2 3 if [[ ($# -ne 3) && ($# -ne 6) ]]; then 4 echo "Usage: $0 <db-username> <db-password> <db-name> [<new-db-admin-pw> <new-db-operator-pw> <new-db-api-pw>]" 5 exit 1 6 fi 7 8 DB_USERNAME=$1 9 DB_PASSWORD=$2 10 DB_NAME=$3 11 12 ACCESS_WITH_PASSWORDS="./access-with-passwords.sql" 13 INITIAL_SETUP=0 14 if [ "$#" -eq 6 ]; then 15 if [[ ($4 = $5) || ($5 = $6) || ($4 = $6) ]]; then 16 echo "PROBLEM: passwords for db admin, operator and api user must be different..." 17 echo "Usage: $0 <db-username> <db-password> <db-name> <source-root> <new-db-admin-pw> <new-db-admin-pw> <new-db-admin-pw>" 18 exit 1 19 fi 20 21 ADMIN_PASSWORD=$4 22 OPERATOR_PASSWORD=$5 23 API_PASSWORD=$6 24 25 cp "./access.sql" $ACCESS_WITH_PASSWORDS 26 sed -i "s/ADMIN_PASSWORD/'$ADMIN_PASSWORD'/g" $ACCESS_WITH_PASSWORDS 27 sed -i "s/OPERATOR_PASSWORD/'$OPERATOR_PASSWORD'/g" $ACCESS_WITH_PASSWORDS 28 sed -i "s/API_PASSWORD/'$API_PASSWORD'/g" $ACCESS_WITH_PASSWORDS 29 sed -i "s/DB_NAME/$DB_NAME/g" $ACCESS_WITH_PASSWORDS 30 31 INITIAL_SETUP=1 32 fi 33 34 SQL_SCRIPTS=( 35 "./versioning.sql" 36 "./0001-c2ec_schema.sql" 37 "./proc-c2ec_status_listener.sql" 38 "./proc-c2ec_payment_notification_listener.sql" 39 "./proc-c2ec_retry_listener.sql" 40 "./proc-c2ec_transfer_listener.sql" 41 "./0001-c2ec_add_confirmed_id.sql" 42 ) 43 44 execute_sql_scripts() { 45 for script in "${SQL_SCRIPTS[@]}"; do 46 echo "Executing SQL script: $script" 47 PGPASSWORD=$DB_PASSWORD psql -U $DB_USERNAME -d $DB_NAME -f $script 48 if [ $? -ne 0 ]; then 49 echo "Failed to execute SQL script: $script" 50 exit 1 51 fi 52 done 53 54 if [ $INITIAL_SETUP -eq 1 ]; then 55 PGPASSWORD=$DB_PASSWORD psql -U $DB_USERNAME -d $DB_NAME -f $ACCESS_WITH_PASSWORDS 56 rm $ACCESS_WITH_PASSWORDS 57 fi 58 59 PGPASSWORD="" 60 } 61 62 execute_sql_scripts 63 if [ $? -ne 0 ]; then 64 exit 1 65 fi