From 49e3b3e5b9bbf1ce356ef68f301d50c689ceecb9 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 19 Dec 2019 13:48:37 +0100 Subject: prepare for schema migrations --- src/util/query.ts | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) (limited to 'src/util/query.ts') diff --git a/src/util/query.ts b/src/util/query.ts index 217c0674e..95ef30e1b 100644 --- a/src/util/query.ts +++ b/src/util/query.ts @@ -383,9 +383,8 @@ export function openDatabase( idbFactory: IDBFactory, databaseName: string, databaseVersion: number, - schema: any, onVersionChange: () => void, - onUpgradeUnsupported: (oldVersion: number, newVersion: number) => void, + onUpgradeNeeded: (db: IDBDatabase, oldVersion: number, newVersion: number) => void, ): Promise { return new Promise((resolve, reject) => { const req = idbFactory.open(databaseName, databaseVersion); @@ -405,31 +404,10 @@ export function openDatabase( }; req.onupgradeneeded = e => { const db = req.result; + onUpgradeNeeded(db, e.oldVersion, e.newVersion!); console.log( `DB: upgrade needed: oldVersion=${e.oldVersion}, newVersion=${e.newVersion}`, ); - switch (e.oldVersion) { - case 0: // DB does not exist yet - for (const n in schema) { - if (schema[n] instanceof Store) { - const si: Store = schema[n]; - const s = db.createObjectStore(si.name, si.storeParams); - for (const indexName in si as any) { - if ((si as any)[indexName] instanceof Index) { - const ii: Index = (si as any)[indexName]; - s.createIndex(ii.indexName, ii.keyPath, ii.options); - } - } - } - } - break; - default: - if (e.oldVersion !== databaseVersion) { - onUpgradeUnsupported(e.oldVersion, databaseVersion); - throw Error("incompatible DB"); - } - break; - } }; }); } -- cgit v1.2.3