also cover drop/restart cases with psql logic
This commit is contained in:
parent
099884ee66
commit
d3fb16b380
@ -15,7 +15,9 @@ sqldir = $(prefix)/share/taler/sql/auditor/
|
||||
|
||||
sql_DATA = \
|
||||
0000.sql \
|
||||
0001.sql
|
||||
0001.sql \
|
||||
drop0000.sql \
|
||||
restart0000.sql
|
||||
|
||||
EXTRA_DIST = \
|
||||
auditordb-postgres.conf \
|
||||
|
49
src/auditordb/drop0000.sql
Normal file
49
src/auditordb/drop0000.sql
Normal file
@ -0,0 +1,49 @@
|
||||
--
|
||||
-- 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 auditor_predicted_result;
|
||||
DROP TABLE IF EXISTS auditor_historic_denomination_revenue;
|
||||
DROP TABLE IF EXISTS auditor_balance_summary;
|
||||
DROP TABLE IF EXISTS auditor_denomination_pending;
|
||||
DROP TABLE IF EXISTS auditor_reserve_balance;
|
||||
DROP TABLE IF EXISTS auditor_wire_fee_balance;
|
||||
DROP TABLE IF EXISTS auditor_reserves;
|
||||
DROP TABLE IF EXISTS auditor_progress_reserve;
|
||||
DROP TABLE IF EXISTS auditor_progress_aggregation;
|
||||
DROP TABLE IF EXISTS auditor_progress_deposit_confirmation;
|
||||
DROP TABLE IF EXISTS auditor_progress_coin;
|
||||
DROP TABLE IF EXISTS wire_auditor_progress;
|
||||
DROP TABLE IF EXISTS wire_auditor_account_progress;
|
||||
DROP TABLE IF EXISTS auditor_historic_reserve_summary CASCADE;
|
||||
DROP TABLE IF EXISTS auditor_denominations CASCADE;
|
||||
DROP TABLE IF EXISTS deposit_confirmations CASCADE;
|
||||
DROP TABLE IF EXISTS auditor_exchanges CASCADE;
|
||||
|
||||
-- Drop versioning (0000.sql)
|
||||
DROP SCHEMA IF EXISTS _v CASCADE;
|
||||
|
||||
-- And we're out of here...
|
||||
COMMIT;
|
@ -113,69 +113,20 @@ postgres_drop_tables (void *cls,
|
||||
int drop_exchangelist)
|
||||
{
|
||||
struct PostgresClosure *pc = cls;
|
||||
struct GNUNET_PQ_ExecuteStatement es[] = {
|
||||
GNUNET_PQ_make_execute ("DELETE FROM auditor_predicted_result;"),
|
||||
GNUNET_PQ_make_execute (
|
||||
"DELETE FROM auditor_historic_denomination_revenue;"),
|
||||
GNUNET_PQ_make_execute ("DELETE FROM auditor_balance_summary;"),
|
||||
GNUNET_PQ_make_execute ("DELETE FROM auditor_denomination_pending;"),
|
||||
GNUNET_PQ_make_execute ("DELETE FROM auditor_reserve_balance;"),
|
||||
GNUNET_PQ_make_execute ("DELETE FROM auditor_wire_fee_balance;"),
|
||||
GNUNET_PQ_make_execute ("DELETE FROM auditor_reserves;"),
|
||||
GNUNET_PQ_make_execute ("DELETE FROM auditor_progress_reserve;"),
|
||||
GNUNET_PQ_make_execute ("DELETE FROM auditor_progress_aggregation;"),
|
||||
GNUNET_PQ_make_execute (
|
||||
"DELETE FROM auditor_progress_deposit_confirmation;"),
|
||||
GNUNET_PQ_make_execute ("DELETE FROM auditor_progress_coin;"),
|
||||
GNUNET_PQ_make_execute ("DELETE FROM wire_auditor_progress;"),
|
||||
GNUNET_PQ_make_execute ("DELETE FROM wire_auditor_account_progress;"),
|
||||
GNUNET_PQ_make_execute ("DELETE FROM auditor_historic_reserve_summary;"),
|
||||
GNUNET_PQ_EXECUTE_STATEMENT_END
|
||||
};
|
||||
struct GNUNET_PQ_ExecuteStatement esx[] = {
|
||||
GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS auditor_predicted_result;"),
|
||||
GNUNET_PQ_make_execute (
|
||||
"DROP TABLE IF EXISTS auditor_historic_denomination_revenue;"),
|
||||
GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS auditor_balance_summary;"),
|
||||
GNUNET_PQ_make_execute (
|
||||
"DROP TABLE IF EXISTS auditor_denomination_pending;"),
|
||||
GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS auditor_reserve_balance;"),
|
||||
GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS auditor_wire_fee_balance;"),
|
||||
GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS auditor_reserves;"),
|
||||
GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS auditor_progress_reserve;"),
|
||||
GNUNET_PQ_make_execute (
|
||||
"DROP TABLE IF EXISTS auditor_progress_aggregation;"),
|
||||
GNUNET_PQ_make_execute (
|
||||
"DROP TABLE IF EXISTS auditor_progress_deposit_confirmation;"),
|
||||
GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS auditor_progress_coin;"),
|
||||
GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS wire_auditor_progress;"),
|
||||
GNUNET_PQ_make_execute (
|
||||
"DROP TABLE IF EXISTS wire_auditor_account_progress;"),
|
||||
GNUNET_PQ_make_execute (
|
||||
"DROP TABLE IF EXISTS auditor_historic_reserve_summary CASCADE;"),
|
||||
GNUNET_PQ_make_execute (
|
||||
"DROP TABLE IF EXISTS auditor_denominations CASCADE;"),
|
||||
GNUNET_PQ_make_execute (
|
||||
"DROP TABLE IF EXISTS deposit_confirmations CASCADE;"),
|
||||
GNUNET_PQ_make_execute ("DROP TABLE IF EXISTS auditor_exchanges CASCADE;"),
|
||||
GNUNET_PQ_make_execute ("DROP SCHEMA IF EXISTS _v CASCADE;"),
|
||||
GNUNET_PQ_EXECUTE_STATEMENT_END
|
||||
};
|
||||
struct GNUNET_PQ_Context *conn;
|
||||
int ret;
|
||||
char *exec_dir;
|
||||
|
||||
GNUNET_asprintf (&exec_dir,
|
||||
(drop_exchangelist) ? "%sdrop" : "%srestart",
|
||||
pc->sql_dir);
|
||||
conn = GNUNET_PQ_connect (pc->connection_cfg_str,
|
||||
exec_dir,
|
||||
NULL,
|
||||
es,
|
||||
NULL);
|
||||
if (NULL == conn)
|
||||
return GNUNET_SYSERR;
|
||||
ret = GNUNET_OK;
|
||||
if (drop_exchangelist)
|
||||
ret = GNUNET_PQ_exec_statements (conn,
|
||||
esx);
|
||||
GNUNET_PQ_disconnect (conn);
|
||||
return ret;
|
||||
return GNUNET_OK;
|
||||
}
|
||||
|
||||
|
||||
|
47
src/auditordb/restart0000.sql
Normal file
47
src/auditordb/restart0000.sql
Normal file
@ -0,0 +1,47 @@
|
||||
--
|
||||
-- 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 restart the auditor state as done to RESTART
|
||||
-- an audit from scratch. It does NOT drop tables and also
|
||||
-- PRESERVES data that running the auditor would not recover,
|
||||
-- such as:
|
||||
-- * the list of audited exchanges
|
||||
-- * deposit confirmation reports the auditor received from merchants
|
||||
-- * schema versioning information
|
||||
--
|
||||
-- Unlike the other SQL files, it SHOULD be updated to reflect the
|
||||
-- latest requirements for dropping tables.
|
||||
|
||||
DELETE FROM auditor_predicted_result;
|
||||
DELETE FROM auditor_historic_denomination_revenue;
|
||||
DELETE FROM auditor_balance_summary;
|
||||
DELETE FROM auditor_denomination_pending;
|
||||
DELETE FROM auditor_reserve_balance;
|
||||
DELETE FROM auditor_wire_fee_balance;
|
||||
DELETE FROM auditor_reserves;
|
||||
DELETE FROM auditor_progress_reserve;
|
||||
DELETE FROM auditor_progress_aggregation;
|
||||
DELETE FROM auditor_progress_deposit_confirmation;
|
||||
DELETE FROM auditor_progress_coin;
|
||||
DELETE FROM wire_auditor_progress;
|
||||
DELETE FROM wire_auditor_account_progress;
|
||||
DELETE FROM auditor_historic_reserve_summary;
|
||||
|
||||
-- And we're out of here...
|
||||
COMMIT;
|
@ -16,7 +16,8 @@ sqldir = $(prefix)/share/taler/sql/exchange/
|
||||
|
||||
sql_DATA = \
|
||||
0000.sql \
|
||||
0001.sql
|
||||
0001.sql \
|
||||
drop0000.sql
|
||||
|
||||
EXTRA_DIST = \
|
||||
exchangedb.conf \
|
||||
|
50
src/exchangedb/drop0000.sql
Normal file
50
src/exchangedb/drop0000.sql
Normal file
@ -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;
|
@ -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/
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user