drop.sql (1590B)
1 -- 2 -- This file is part of TALER 3 -- Copyright (C) 2014--2021 Taler Systems SA 4 -- 5 -- TALER is free software; you can redistribute it and/or modify it under the 6 -- terms of the GNU General Public License as published by the Free Software 7 -- Foundation; either version 3, or (at your option) any later version. 8 -- 9 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY 10 -- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 11 -- A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 -- 13 -- You should have received a copy of the GNU General Public License along with 14 -- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> 15 -- 16 17 -- Everything in one big transaction 18 BEGIN; 19 20 -- This script DROPs all of the tables we create. 21 22 -- On a database that was never initialized there is no versioning 23 -- schema yet, and referencing _v.patches would abort the whole script 24 -- before the DROPs below ever run. 25 DO $$ 26 BEGIN 27 IF EXISTS (SELECT 1 28 FROM pg_namespace 29 WHERE nspname = '_v') 30 THEN 31 PERFORM _v.unregister_patch (patch_name) 32 FROM _v.patches 33 WHERE starts_with (patch_name,'merchant-'); 34 END IF; 35 END 36 $$; 37 38 39 -- Drop all per-instance schemas created by the per-instance trigger. 40 DO $$ 41 DECLARE 42 r RECORD; 43 BEGIN 44 FOR r IN 45 SELECT nspname 46 FROM pg_namespace 47 WHERE nspname LIKE 'merchant_instance_%' 48 LOOP 49 EXECUTE format('DROP SCHEMA %I CASCADE', r.nspname); 50 END LOOP; 51 END 52 $$; 53 54 DROP SCHEMA IF EXISTS merchant CASCADE; 55 56 -- And we're out of here... 57 COMMIT;