commit 36dd9b9a452e16ddf776a868eedd1abde277ae36 parent 99c5f35121308fc961b5358eb5e1fe875530bd55 Author: Christian Grothoff <grothoff@gnunet.org> Date: Mon, 12 May 2025 13:07:58 +0200 db migration script Diffstat:
| A | migrate-db-v0-v1.sh | | | 95 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 95 insertions(+), 0 deletions(-)
diff --git a/migrate-db-v0-v1.sh b/migrate-db-v0-v1.sh @@ -0,0 +1,95 @@ +#!/bin/sh +# This file is in the public domain. +# Call with exchange configuration file as the exchange user (with DB access). +set -eu +CONF=${1:-/etc/taler-exchange/taler-exchange.conf} +DB=$(taler-exchange-config -c "$CONF" -s exchangedb-postgres -o config) +DBNAME=$(echo "$DB" | awk -F / '{print $4}') +DIR=$(mktemp -d) +echo "Dumping database $DB to $DIR" +pg_dump -d "$DB" -f "$DIR/full.sql" +for t in $(echo " +exchange.account_merges +exchange.aggregation_tracking +exchange.aggregation_transient +exchange.batch_deposits +exchange.close_requests +exchange.coin_deposits +exchange.coin_history +exchange.contracts +exchange.cs_nonce_locks +exchange.denominations +exchange.exchange_sign_keys +exchange.global_fee +exchange.history_requests +exchange.known_coins +exchange.prewire +exchange.purse_actions +exchange.purse_decision +exchange.purse_deletion +exchange.purse_deposits +exchange.purse_merges +exchange.purse_requests +exchange.refunds +exchange.reserve_history +exchange.reserves +exchange.reserves_close +exchange.reserves_in +exchange.reserves_open_deposits +exchange.reserves_open_requests +exchange.reserves_out +exchange.revolving_work_shards +exchange.wire_accounts +exchange.wire_fee +exchange.wire_out +exchange.wire_targets +exchange.work_shards") +do + echo "Backing up Table $t" + pg_dump -a -d "$DB" -t "$t" -f "$DIR/$t.sql" +done +echo "Migrating to new schema" +taler-exchange-dbinit -c "$CONF" -r + +for t in $(echo " +exchange.account_merges +exchange.aggregation_tracking +exchange.aggregation_transient +exchange.batch_deposits +exchange.close_requests +exchange.coin_deposits +exchange.coin_history +exchange.contracts +exchange.cs_nonce_locks +exchange.denominations +exchange.exchange_sign_keys +exchange.global_fee +exchange.history_requests +exchange.known_coins +exchange.prewire +exchange.purse_actions +exchange.purse_decision +exchange.purse_deletion +exchange.purse_deposits +exchange.purse_merges +exchange.purse_requests +exchange.refunds +exchange.reserve_history +exchange.reserves +exchange.reserves_close +exchange.reserves_in +exchange.reserves_open_deposits +exchange.reserves_open_requests +exchange.reserves_out +exchange.revolving_work_shards +exchange.wire_accounts +exchange.wire_fee +exchange.wire_out +exchange.wire_targets +exchange.work_shards") +do + echo "Restoring Table $t" + psql "$DB" < "$DIR/$t.sql" +done +echo "Done" +exit 0