commit 7c2e8879e09270d39b8394e28d421d9a339358f2
parent f4f77e5b50c77936b75816b68380638745ef87ef
Author: Florian Dold <dold@taler.net>
Date: Tue, 8 Sep 2026 16:54:32 +0200
Exchange: document GC without schema migration
Diffstat:
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/manpages/taler-exchange-dbinit.1.rst b/manpages/taler-exchange-dbinit.1.rst
@@ -53,7 +53,11 @@ Its options are as follows:
**-g** \| **--gc**
Garbage collect database. Deletes all unnecessary data in the
- database.
+ database. Requires an initialized, current schema and does not apply
+ migrations or reload stored procedures. If migration is pending, exits
+ with a diagnostic and a nonzero status; run the schema upgrade explicitly
+ before retrying GC. An explicit **--reset** retains precedence and recreates
+ the schema even when combined with **--gc**.
**-h** \| **--help**
Print short help on options.
diff --git a/taler-exchange-manual.rst b/taler-exchange-manual.rst
@@ -1539,6 +1539,11 @@ The tool also allows you to reset the Taler exchange database, which is
useful for test cases but should never be used in production. Finally,
``taler-exchange-dbinit`` has a function to garbage collect a database,
allowing administrators to purge records that are no longer required.
+Garbage collection (``taler-exchange-dbinit -g``) requires a current schema;
+it never applies schema upgrades or reloads stored procedures. Stop the
+Exchange services and apply any pending migration explicitly before running
+GC. This also applies to the scheduled Debian GC job. An explicit ``--reset``
+is destructive and retains its schema-initialization behavior even with ``-g``.
The database scheme used by the exchange looks as follows: