@@ -178,7 +178,6 @@ export class IndexedDbProvider extends DbProvider {
178
178
179
179
this . _lockHelper = new TransactionLockHelper ( schema , true ) ;
180
180
181
- this . logWriter . log ( `Opening db, version: ${ schema . version } ` , { dbName } ) ;
182
181
const dbOpen = this . _dbFactory . open ( dbName , schema . version ) ;
183
182
184
183
let migrationPutters : Promise < void > [ ] = [ ] ;
@@ -187,21 +186,22 @@ export class IndexedDbProvider extends DbProvider {
187
186
const db : IDBDatabase = dbOpen . result ;
188
187
const target = < IDBOpenDBRequest > ( event . currentTarget || event . target ) ;
189
188
const trans = target . transaction ;
189
+ // Differentiate between upgrade and new db
190
+ let isActualUpgrade = false ;
190
191
191
192
if ( ! trans ) {
192
193
this . logWriter . error ( `No transaction, unable to do upgrade` ) ;
193
194
throw new Error ( "onupgradeneeded: target is null!" ) ;
194
195
}
195
196
196
- this . logWriter . log ( `Upgrade needed for db` , { dbName } ) ;
197
-
198
197
// Avoid clearing object stores when event.oldVersion returns 0.
199
198
// oldVersion returns 0 if db doesn't exist yet: https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEvent/oldVersion
200
199
if ( event . oldVersion ) {
201
200
if (
202
201
schema . lastUsableVersion &&
203
202
event . oldVersion < schema . lastUsableVersion
204
203
) {
204
+ isActualUpgrade = true ;
205
205
// Clear all stores if it's past the usable version
206
206
this . logWriter . log (
207
207
`Old version detected (${ event . oldVersion } ), clearing all data`
@@ -222,7 +222,11 @@ export class IndexedDbProvider extends DbProvider {
222
222
}
223
223
224
224
// Create all stores
225
- this . logWriter . log ( `Creating stores as part of upgrade process` ) ;
225
+ if ( isActualUpgrade ) {
226
+ this . logWriter . log (
227
+ `Creating stores after db wipe due to lastUsableVersion change`
228
+ ) ;
229
+ }
226
230
each ( schema . stores , ( storeSchema ) => {
227
231
let store : IDBObjectStore ;
228
232
const storeExistedBefore = includes (
@@ -238,10 +242,6 @@ export class IndexedDbProvider extends DbProvider {
238
242
}
239
243
240
244
// Any is to fix a lib.d.ts issue in TS 2.0.3 - it doesn't realize that keypaths can be compound for some reason...
241
- this . logWriter . log ( `Store doesn't exist, creating object store` , {
242
- dbName,
243
- storeName : storeSchema . name ,
244
- } ) ;
245
245
store = db . createObjectStore ( storeSchema . name , {
246
246
keyPath : primaryKeyPath ,
247
247
} as any ) ;
@@ -373,6 +373,12 @@ export class IndexedDbProvider extends DbProvider {
373
373
} ) ;
374
374
}
375
375
}
376
+
377
+ if ( needsMigrate ) {
378
+ this . logWriter . log ( `schema changes require rebuilding indices` ) ;
379
+ } else {
380
+ this . logWriter . log ( `Creating stores as part of upgrade process` ) ;
381
+ }
376
382
} ) ;
377
383
378
384
if ( needsMigrate ) {
@@ -428,12 +434,18 @@ export class IndexedDbProvider extends DbProvider {
428
434
429
435
return promise . then (
430
436
( db ) => {
431
- this . logWriter . log (
432
- `Waiting for migrationPutters: ${ migrationPutters . length } to complete for db` ,
433
- { dbName }
434
- ) ;
437
+ // OnUpgradeNeeded will get called for new DBs too so we want to avoid logging those
438
+ const isActualMigration = migrationPutters . length > 0 ;
439
+ if ( isActualMigration ) {
440
+ this . logWriter . log (
441
+ `Waiting for migrationPutters: ${ migrationPutters . length } to complete for db` ,
442
+ { dbName }
443
+ ) ;
444
+ }
435
445
return Promise . all ( migrationPutters ) . then ( ( ) => {
436
- this . logWriter . log ( `Opening db success` , { dbName } ) ;
446
+ if ( isActualMigration ) {
447
+ this . logWriter . log ( `Opening db success` , { dbName } ) ;
448
+ }
437
449
this . _db = db ;
438
450
this . _db . onclose = ( event : Event ) => {
439
451
if ( this . _handleOnClose ) {
@@ -483,9 +495,12 @@ export class IndexedDbProvider extends DbProvider {
483
495
return this . open ( dbName , schema , true , verbose ) ;
484
496
}
485
497
}
486
- this . logWriter . error ( `Error opening db, message: ${ err ?. message } ` , {
487
- dbName,
488
- } ) ;
498
+ this . logWriter . error (
499
+ `Error opening db, message: ${ err ?. message } ${ err ?. target ?. error } ${ err ?. target ?. error ?. name } ` ,
500
+ {
501
+ dbName,
502
+ }
503
+ ) ;
489
504
return Promise . reject < void > ( err ) ;
490
505
}
491
506
) ;
0 commit comments