taler-deployment

Deployment scripts and configuration files
Log | Files | Refs | README

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