skinneejoe
skinneejoe

Reputation: 3991

IndexedDB view all Databases and Object Stores

I'm using IndexedDB in a Windows 8 app and I'm very new to both. I've been able to successfully create, read, update, delete objects from object stores, and have created a couple databases and a few object stores. My question is how can I list all of my object stores and databases? I create a few bogus ones that are not needed and I would like to clean things up a bit, but I can't remember what they are named. Maybe this is anal retentive, but it seems like it should be possible to list all databases and stores. Thanks!

Upvotes: 27

Views: 22558

Answers (4)

Deni Spasovski
Deni Spasovski

Reputation: 4129

EDIT 2018 This answer is no longer applicable:

webkitGetDatabaseNames() is deprecated in chrome 60


In Chrome webkit there was a function which would return all database names, this function is no longer available as of Chrome 60 (webkitgetdatabasenames):

indexedDB.webkitGetDatabaseNames().onsuccess = function(sender,args) { 
  console.log(sender.target.result); 
};

And there is another function which list all object stores in a single database which work in all browsers:

indexedDB.open(databaseName).onsuccess = function(sender, args) { 
  console.log(sender.target.result.objectStoreNames); 
};

Upvotes: 20

holmberd
holmberd

Reputation: 2609

Since all other topics reference back here as a duplicates. In Chrome you can view and delete all created databases in Developer Tools > Application > Storage.

To view IndexedDB internals: chrome://indexeddb-internals/

Upvotes: 7

mdsadiq
mdsadiq

Reputation: 890

At the time of writing this post [chrome 72], You can list all the databases using following command in console of the browser. Essentially indexedDB.databases() is a Promise. You can use it to get list of all databases as an array. Run a loop on the array to get the names of databases.

indexedDB.databases().then(r => console.log(r))

Hope this helps

Upvotes: 46

Useless Code
Useless Code

Reputation: 12402

There is currently no way of enumerating the existing databases in the standard. Windows 8 apps use IE, which does not provide the non-standard webkitGetDatabaseNames method. You might be able to clear the databases using the options dialog in IE10.

Listing the stores inside a database is defined in the standard using the objectStoreNames method of an IDBDatabase instance.

Upvotes: 15

Related Questions