commit 9811da5a8063e750acce65190db2466723b581fa
parent 6a4675267e00a5fd0eeb9b949e156510fc491602
Author: Florian Dold <florian@dold.me>
Date: Tue, 23 Jan 2024 09:38:48 +0100
wallet-core: properly migrate new index
Diffstat:
2 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/packages/idb-bridge/src/SqliteBackend.ts b/packages/idb-bridge/src/SqliteBackend.ts
@@ -992,6 +992,11 @@ export class SqliteBackend implements Backend {
object_store_id: objectStoreId,
name: indexName,
});
+ if (!idxInfo) {
+ throw Error(
+ `index ${indexName} on object store ${objectStoreName} not found`,
+ );
+ }
const indexUnique = expectDbNumber(idxInfo, "unique_index");
const indexMultiEntry = expectDbNumber(idxInfo, "multientry");
const indexKeyPath = deserializeKeyPath(
diff --git a/packages/taler-wallet-core/src/db.ts b/packages/taler-wallet-core/src/db.ts
@@ -31,7 +31,6 @@ import {
AbsoluteTime,
AgeCommitmentProof,
AmountJson,
- AmountLike,
AmountString,
Amounts,
AttentionInfo,
@@ -152,7 +151,7 @@ export const CURRENT_DB_CONFIG_KEY = "currentMainDbName";
* backwards-compatible way or object stores and indices
* are added.
*/
-export const WALLET_DB_MINOR_VERSION = 3;
+export const WALLET_DB_MINOR_VERSION = 4;
declare const symDbProtocolTimestamp: unique symbol;
@@ -2332,11 +2331,14 @@ export const WalletStoresV1 = {
autoIncrement: true,
versionAdded: 3,
indexes: {
- byCurrencyAndUrlAndPub: describeIndex("byCurrencyAndUrlAndPub", [
- "currency",
- "auditorBaseUrl",
- "auditorPub",
- ]),
+ byCurrencyAndUrlAndPub: describeIndex(
+ "byCurrencyAndUrlAndPub",
+ ["currency", "auditorBaseUrl", "auditorPub"],
+ {
+ unique: true,
+ versionAdded: 4,
+ },
+ ),
},
}),
globalCurrencyExchanges: describeStoreV2({
@@ -2351,6 +2353,7 @@ export const WalletStoresV1 = {
["currency", "exchangeBaseUrl", "exchangeMasterPub"],
{
unique: true,
+ versionAdded: 4,
},
),
},