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)
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.
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.