diff options
Diffstat (limited to 'src/exchangedb')
| -rw-r--r-- | src/exchangedb/Makefile.am | 3 | ||||
| -rw-r--r-- | src/exchangedb/drop0000.sql | 50 | ||||
| -rw-r--r-- | src/exchangedb/exchangedb-postgres.conf | 1 | ||||
| -rw-r--r-- | src/exchangedb/plugin_exchangedb_postgres.c | 34 | 
4 files changed, 59 insertions, 29 deletions
| diff --git a/src/exchangedb/Makefile.am b/src/exchangedb/Makefile.am index 40db0974..e7ac4d71 100644 --- a/src/exchangedb/Makefile.am +++ b/src/exchangedb/Makefile.am @@ -16,7 +16,8 @@ sqldir = $(prefix)/share/taler/sql/exchange/  sql_DATA = \    0000.sql \ -  0001.sql +  0001.sql \ +  drop0000.sql  EXTRA_DIST = \    exchangedb.conf \ diff --git a/src/exchangedb/drop0000.sql b/src/exchangedb/drop0000.sql new file mode 100644 index 00000000..26e193ca --- /dev/null +++ b/src/exchangedb/drop0000.sql @@ -0,0 +1,50 @@ +-- +-- This file is part of TALER +-- Copyright (C) 2014--2020 Taler Systems SA +-- +-- TALER is free software; you can redistribute it and/or modify it under the +-- terms of the GNU General Public License as published by the Free Software +-- Foundation; either version 3, or (at your option) any later version. +-- +-- TALER is distributed in the hope that it will be useful, but WITHOUT ANY +-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +-- A PARTICULAR PURPOSE.  See the GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License along with +-- TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/> +-- + +-- Everything in one big transaction +BEGIN; + +-- This script DROPs all of the tables we create, including the +-- versioning schema! +-- +-- Unlike the other SQL files, it SHOULD be updated to reflect the +-- latest requirements for dropping tables. + +-- Drops for 0001.sql +DROP TABLE IF EXISTS prewire CASCADE; +DROP TABLE IF EXISTS payback CASCADE; +DROP TABLE IF EXISTS payback_refresh CASCADE; +DROP TABLE IF EXISTS aggregation_tracking CASCADE; +DROP TABLE IF EXISTS wire_out CASCADE; +DROP TABLE IF EXISTS wire_fee CASCADE; +DROP TABLE IF EXISTS deposits CASCADE; +DROP TABLE IF EXISTS refunds CASCADE; +DROP TABLE IF EXISTS refresh_commitments CASCADE; +DROP TABLE IF EXISTS refresh_revealed_coins CASCADE; +DROP TABLE IF EXISTS refresh_transfer_keys CASCADE; +DROP TABLE IF EXISTS known_coins CASCADE; +DROP TABLE IF EXISTS reserves_close CASCADE; +DROP TABLE IF EXISTS reserves_out CASCADE; +DROP TABLE IF EXISTS reserves_in CASCADE; +DROP TABLE IF EXISTS reserves CASCADE; +DROP TABLE IF EXISTS denomination_revocations CASCADE; +DROP TABLE IF EXISTS denominations CASCADE; + +-- Drop versioning (0000.sql) +DROP SCHEMA IF EXISTS _v CASCADE; + +-- And we're out of here... +COMMIT; diff --git a/src/exchangedb/exchangedb-postgres.conf b/src/exchangedb/exchangedb-postgres.conf index 40fe3de0..7d600586 100644 --- a/src/exchangedb/exchangedb-postgres.conf +++ b/src/exchangedb/exchangedb-postgres.conf @@ -2,4 +2,5 @@  CONFIG = "postgres:///taler"  # Where are the SQL files to setup our tables? +# Important: this MUST end with a "/"!  SQL_DIR = $DATADIR/sql/exchange/ diff --git a/src/exchangedb/plugin_exchangedb_postgres.c b/src/exchangedb/plugin_exchangedb_postgres.c index afdebf92..80f91785 100644 --- a/src/exchangedb/plugin_exchangedb_postgres.c +++ b/src/exchangedb/plugin_exchangedb_postgres.c @@ -147,39 +147,17 @@ static int  postgres_drop_tables (void *cls)  {    struct PostgresClosure *pc = cls; -  struct GNUNET_PQ_ExecuteStatement es[] = { -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS prewire CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS payback CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS payback_refresh CASCADE;"), -    GNUNET_PQ_make_execute ( -      "DROP TABLE IF EXISTS aggregation_tracking CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS wire_out CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS wire_fee CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS deposits CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS refunds CASCADE;"), -    GNUNET_PQ_make_execute ( -      "DROP TABLE IF EXISTS refresh_commitments CASCADE;"), -    GNUNET_PQ_make_execute ( -      "DROP TABLE IF EXISTS refresh_revealed_coins CASCADE;"), -    GNUNET_PQ_make_execute ( -      "DROP TABLE IF EXISTS refresh_transfer_keys CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS known_coins CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS reserves_close CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS reserves_out CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS reserves_in CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS reserves CASCADE;"), -    GNUNET_PQ_make_execute ( -      "DROP TABLE IF EXISTS denomination_revocations CASCADE;"), -    GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS denominations CASCADE;"), -    GNUNET_PQ_make_execute ("DROP SCHEMA IF EXISTS _v CASCADE;"), -    GNUNET_PQ_EXECUTE_STATEMENT_END -  };    struct GNUNET_PQ_Context *conn; +  char *drop_dir; +  GNUNET_asprintf (&drop_dir, +                   "%sdrop", +                   pc->sql_dir);    conn = GNUNET_PQ_connect (pc->connection_cfg_str, +                            drop_dir,                              NULL, -                            es,                              NULL); +  GNUNET_free (drop_dir);    if (NULL == conn)      return GNUNET_SYSERR;    GNUNET_PQ_disconnect (conn); | 
