migrate-db-v0-v1.sh (2264B)
1 #!/bin/sh 2 # This file is in the public domain. 3 # Call with exchange configuration file as the exchange user (with DB access). 4 set -eu 5 CONF=${1:-/etc/taler-exchange/taler-exchange.conf} 6 DB=$(taler-exchange-config -c "$CONF" -s exchangedb-postgres -o config) 7 DBNAME=$(echo "$DB" | awk -F / '{print $4}') 8 DIR=$(mktemp -d) 9 echo "Dumping database $DB to $DIR" 10 pg_dump -d "$DB" -f "$DIR/full.sql" 11 for t in $(echo " 12 exchange.wire_accounts 13 exchange.wire_targets 14 exchange.account_merges 15 exchange.known_coins 16 exchange.batch_deposits 17 exchange.coin_deposits 18 exchange.aggregation_tracking 19 exchange.aggregation_transient 20 exchange.close_requests 21 exchange.coin_history 22 exchange.contracts 23 exchange.cs_nonce_locks 24 exchange.denominations 25 exchange.exchange_sign_keys 26 exchange.global_fee 27 exchange.history_requests 28 exchange.prewire 29 exchange.purse_actions 30 exchange.purse_requests 31 exchange.purse_deletion 32 exchange.purse_deposits 33 exchange.purse_merges 34 exchange.purse_decision 35 exchange.refunds 36 exchange.reserves 37 exchange.reserves_close 38 exchange.reserves_in 39 exchange.reserves_open_deposits 40 exchange.reserves_open_requests 41 exchange.reserves_out 42 exchange.revolving_work_shards 43 exchange.wire_fee 44 exchange.wire_out 45 exchange.work_shards") 46 do 47 echo "Backing up Table $t" 48 pg_dump -a -d "$DB" -t "$t" -f "$DIR/$t.sql" 49 done 50 echo "Migrating to new schema" 51 taler-exchange-dbinit -c "$CONF" -r 52 53 for t in $(echo " 54 exchange.cs_nonce_locks 55 exchange.denominations 56 exchange.exchange_sign_keys 57 exchange.global_fee 58 exchange.known_coins 59 exchange.prewire 60 exchange.wire_accounts 61 exchange.wire_targets 62 exchange.reserves 63 exchange.batch_deposits 64 exchange.aggregation_tracking 65 exchange.aggregation_transient 66 exchange.close_requests 67 exchange.coin_deposits 68 exchange.contracts 69 exchange.history_requests 70 exchange.purse_requests 71 exchange.purse_decision 72 exchange.purse_deletion 73 exchange.purse_deposits 74 exchange.purse_merges 75 exchange.refunds 76 exchange.account_merges 77 exchange.reserves_close 78 exchange.reserves_in 79 exchange.reserves_open_deposits 80 exchange.reserves_open_requests 81 exchange.reserves_out 82 exchange.revolving_work_shards 83 exchange.wire_fee 84 exchange.wire_out 85 exchange.work_shards") 86 do 87 echo "Restoring Table $t" 88 psql "$DB" < "$DIR/$t.sql" 89 done 90 echo "Done" 91 exit 0 92 93 # fix permissions 94 taler-exchange-dbconfig