Dexie.js: Sometimes. when delete the indexeddb . Next Time StartUp On error. S

Created on 23 Sep 2020  路  2Comments  路  Source: dfahlander/Dexie.js

Define local db like:

const localDB = new Dexie(dbName);
localDB.version(1).stores({
    space: "spaceID,IsDefault,spaceStatus,spaceType,spaceVersion,spaceName"
    user: "usID,spaceID,accountID,userName,userPhone",
    group: "groupID,spaceID,name,introduction,groupStatus" 
});
localDB.open().catch(function (e) {
    console.error("LocalDB Open failed: " + e.stack);
});
export default localDB;

User LocalDB like:

import localDB from '@/plugins/localdb'

//Save My SpaceList ToDB
export function dbSetSpaceDB(data) {
    return localDB.space.bulkPut(data);
}

export function dbGetSpaceProfile(space) {
    return localDB.space.get(space);
}

when delete Chrome IndexedDB. sometimes . Startup Page on this error:

webpack-internal:///./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/account/StartUp.vue?vue&type=script&lang=js&:39 Unhandled promise rejection: InvalidStateError: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
 InvalidStateError: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
Error: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
    at Transaction$$1.Transaction.create (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:2621:54)
    at tempTransaction (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1287:19)
    at Table$$1.Table._trans (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1350:17)
    at Collection$$1.Collection._read (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1772:23)
    at Collection$$1.Collection.toArray (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1841:21)
    at dbGetSpaceArray (webpack-internal:///./src/service/db/db_space.js:25:88)
    at _callee3$ (webpack-internal:///./src/service/utility/InitiDbData.js:267:96)
    at tryCatch (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:63:40)
    at Generator.invoke [as _invoke] (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:293:22)
    at Generator.eval [as next] (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:118:21)
From previous: 
    at DexiePromise.then (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:689:22)
    at Collection$$1.Collection._read (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1772:46)
    at Collection$$1.Collection.toArray (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1841:21)
    at dbGetSpaceArray (webpack-internal:///./src/service/db/db_space.js:25:88)
    at _callee3$ (webpack-internal:///./src/service/utility/InitiDbData.js:267:96)
    at tryCatch (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:63:40)
    at Generator.invoke [as _invoke] (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:293:22)
    at Generator.eval [as next] (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:118:21)
From previous: InvalidStateError: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
Error: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
    at Transaction$$1.Transaction.create (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:2621:54)
    at tempTransaction (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1287:19)
    at Table$$1.Table._trans (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1350:17)
    at Collection$$1.Collection._read (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1772:23)
    at Collection$$1.Collection.toArray (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1841:21)
    at dbGetSpaceArray (webpack-internal:///./src/service/db/db_space.js:25:88)
    at _callee3$ (webpack-internal:///./src/service/utility/InitiDbData.js:267:96)
    at tryCatch (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:63:40)
    at Generator.invoke [as _invoke] (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:293:22)
    at Generator.eval [as next] (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:118:21)
From previous: 
    at PromiseReject (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1066:12)
    at tempTransaction (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1290:20)
    at Table$$1.Table._trans (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1350:17)
    at Collection$$1.Collection._read (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1772:23)
    at Collection$$1.Collection.toArray (webpack-internal:///./node_modules/dexie/dist/dexie.mjs:1841:21)
    at dbGetSpaceArray (webpack-internal:///./src/service/db/db_space.js:25:88)
    at _callee3$ (webpack-internal:///./src/service/utility/InitiDbData.js:267:96)
    at tryCatch (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:63:40)
question

Most helpful comment

That seems to be a natural error based on the circumbstances. Your app has to handle errors and show the user accurate message. A user that has actively got into the chrome debugger and deleted the database would understand that the app stops working at this point. App cannot work if database is deleted. Refreshing the page will recreate it naturally, as it would on first time visit.

All 2 comments

And Refresh the page .It will be OK.

That seems to be a natural error based on the circumbstances. Your app has to handle errors and show the user accurate message. A user that has actively got into the chrome debugger and deleted the database would understand that the app stops working at this point. App cannot work if database is deleted. Refreshing the page will recreate it naturally, as it would on first time visit.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

bennycode picture bennycode  路  24Comments

bennycode picture bennycode  路  28Comments

antonioaguilar picture antonioaguilar  路  14Comments

dfahlander picture dfahlander  路  16Comments

jboulmal picture jboulmal  路  21Comments