-- -- This file is part of TALER -- Copyright (C) 2014--2022 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 -- BEGIN; SELECT _v.register_patch('exchange-0001', NULL, NULL); CREATE SCHEMA exchange; COMMENT ON SCHEMA exchange IS 'taler-exchange data'; SET search_path TO exchange; --------------------------------------------------------------------------- -- General procedures for DB setup --------------------------------------------------------------------------- CREATE TABLE exchange_tables (table_serial_id INT8 GENERATED BY DEFAULT AS IDENTITY ,name TEXT NOT NULL ,version TEXT NOT NULL ,action TEXT NOT NULL ,partitioned BOOL NOT NULL ,by_range BOOL NOT NULL ,finished BOOL NOT NULL DEFAULT(FALSE)); COMMENT ON TABLE exchange_tables IS 'Tables of the exchange and their status'; COMMENT ON COLUMN exchange_tables.name IS 'Base name of the table (without partition/shard)'; COMMENT ON COLUMN exchange_tables.version IS 'Version of the DB in which the given action happened'; COMMENT ON COLUMN exchange_tables.action IS 'Action to take on the table (e.g. create, alter, constrain, or foreign). Create is done for the master table and each partition; constrain is only for partitions or for master if there are no partitions; master only on master (takes no argument); foreign only on master if there are no partitions.'; COMMENT ON COLUMN exchange_tables.partitioned IS 'TRUE if the table is partitioned'; COMMENT ON COLUMN exchange_tables.by_range IS 'TRUE if the table is partitioned by range'; COMMENT ON COLUMN exchange_tables.finished IS 'TRUE if the respective migration has been run'; COMMIT;