Reputation: 3367
I'm working in a project which involves using IndexedDB. As I'm begining to know this technology, I need to be able to delete an indexedDB by hand so I can start over.
I found the way to do it in Firefox, but I can't find the way for Google Chrome.
I tried deleting the content of this folder (I'm using Mac):
{home}/Library/Application Support/Google/Chrome/Default/IndexedDB
but it seems Chrome stil have the DB anywhere so I can't start over.
Upvotes: 106
Views: 141385
Reputation: 12395
If you are looking for an answer for the version since 2023, you can just click the "Delete database" button as https://developer.chrome.com/docs/devtools/storage/indexeddb?utm_source=devtools said,
Upvotes: 1
Reputation: 71
Since most of the answers not mentioned how to find the db names:
indexedDB.databases().then(res => console.log(res))
to learn database names used by this website (open the result with interactive console, find the name).indexedDB.deleteDatabase('<your database name>')
.Upvotes: 2
Reputation: 1
//By for loop
const deleteAllDBs=async()=>{
const existingDBs=await indexedDB.databases()
for (let i = 0; i < existingDBs.length; i++) {
indexedDB.deleteDatabase(existingDBs[i].name)
}
}
//By forEach loop
const dbs = await window.indexedDB.databases()
dbs.forEach(db => { window.indexedDB.deleteDatabase(db.name) })
Upvotes: 0
Reputation: 2966
To delete IndexedDB in Chrome on Android:
(You cannot delete IndexedDB via Settings -> Privacy and security
section, what is quite misleading...)
Upvotes: 2
Reputation: 16949
Chrome -> Inspector Window -> Application -> look at left hand menu -> Storage -> IndexedDB
You have to be on your application's page though. Also I think Safari expires IDB data after 7 days or something.
Upvotes: 6
Reputation: 650
In order to complete @Judson's answer, based on @fullstacklife's comment; for deleting IndexedDB in chrome using javascript you should:
let currentIDB = indexedDB.open("DB_NAME", DB_VERSION_INTEGER);
currentIDB.onblocked = function(){
//
};
currentIDB.onerror = function(){
//
};
currentIDB.onsuccess = function(){
var idb = currentIDB.result;
idb.close();
indexedDB.deleteDatabase("DB_NAME");
};
Upvotes: 1
Reputation: 1
I needed to get rid of an indexedDB in Chrome. So I search for this lousy thing called "email assistant" on my computer using MasterSeeker. Found the thing in a bunch folders that were indexedDB in Chrome. It seemed too easy that I just delete those files. I looked up how, and ended up here. I went to chrome settings with my Windows 10 PC. I just gave it a shot at trying to clear the browsing data. Presto - all those files disappeared from indexedDB, including that dreaded "email assistant" crapola. Now when I look in the indexedDB folder all I see that has reappeared is https_mail.google.com_0.indexeddb.leveldb - which looks like a safe non-irritating thing.
Upvotes: 0
Reputation: 8187
This is maybe overkill for your specific question, but I kept ending up here in my struggle to delete my idb.
My solution in the end was based on mozilla's documentation, but required that I first close the database.
For me, in Javascript, the code looked like this:
my_db_instance.close(function(e){console.log(e)});
var DBDeleteRequest = indexedDB.deleteDatabase("my_db_name");
// When i had the base open, the closure was blocked, so i left this here
DBDeleteRequest.onblocked = function(event) {
console.log("Blocked");
};
DBDeleteRequest.onerror = function(event) {
console.log("Error deleting database.");
console.log(event);
};
DBDeleteRequest.onsuccess = function(event) {
console.log("Database deleted successfully");
};
Upvotes: 2
Reputation: 3452
Chrome Developer tools now have an option to delete all databases for an app, under "Application/Clear Storage".
Upvotes: 3
Reputation: 11029
In theory, all you need to do to delete an IndexedDB in Chrome is:
In Windows, the file is located here:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\IndexedDB
On Mac, do the following:
On Mac, the folder is located here:
/Users/[USERNAME]/Library/Application Support/Google/Chrome/Default/IndexedDB/
On Linux, the folder is located at:
/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/
Upvotes: 110
Reputation: 859
write this code segment in console
window.indexedDB.deleteDatabase(<your db name>)
Upvotes: 5
Reputation: 488
In Chrome webkit you can use webkitGetDatabaseNames
which returns all database names
With this code, you can delete all local indexedDB:
window.indexedDB.webkitGetDatabaseNames().onsuccess = function(sender,args)
{
var r = sender.target.result;
for(var i in r)
indexedDB.deleteDatabase(r[i]);
};
Upvotes: 9
Reputation: 91
In windows, you can manually delete the whole IndexedDB databases by locating the IndexedDB directory for the browser and deleting it
For Chrome:
C:\Users\user-name\AppData\Local\Google\Chrome\User Data\Profile 1\IndexedDB
You can delete every folder which clears up the indexedDB. You can start over now.
Upvotes: 0
Reputation: 53
To remove all Chrome IndexedDB databases run the following in OSX terminal emulator.
rm -rf ${HOME}/Library/Application\ Support/Google/Chrome/Default/IndexedDB/*
Now restart your browser and that's it.
Because I need to purge IndexedDB databases very often, I have set up an alias in my ~./bash_profile.
alias purge-idb="rm -rf ${HOME}/Library/Application\ Support/Google/Chrome/Default/IndexedDB/*"
Upvotes: 5
Reputation: 29208
It's not possible to delete IndexedDB database (as opposed to stores and indexes) programmatically.
As for manual workarounds, this post details the location of the database on Windows systems for Firefox and Chrome.
Update: Thanks to developer Joshua Bell, Chrome implements an off-spec (but insanely useful) deleteDatabase
method on the window.indexedDB
object. Here's the crbug that landed this patch. Moreover, in newer versions of IE, you can delete databases via a settings panel.
Upvotes: 2
Reputation: 5493
Alternarive is to do it in the developers console, using this command:
indexedDB.deleteDatabase("databaseName")
Upvotes: 32
Reputation: 2325
I've had success running the following in Chrome:
indexedDB.deleteDatabase('DB NAME')
Upvotes: 172
Reputation: 1494
In Debian GNU/Linux directory
/home/[username]/.config/google-chrome/Default/IndexedDB/chrome-xxx.indexeddb.leveldb/
contains regular files (for example):
000003.log, CURRENT, LOCK, LOG, MANIFEST-000002
Upvotes: 2
Reputation: 183
In chrome OSX- /Users/user/Library/Application Support/Google/Chrome/Default/IndexedDB Firefox OSX - Users/user/Library/Application Support/Firefox/Profiles/4zaemxcn.default/indexedDB
You just need to make visible the library folder. All of the files are stored in folders(which are called as domain name) and the files use hash, but you can figure out the name of database from it. You can delete data from IDB because it is a client side database and all of the data is stored locally.
Upvotes: 0
Reputation: 159
To delete an IndexedDB from the OS X version of Chrome:
1) In Preferences, show Advanced Settings then click the "Content Settings" button under the "Privacy" section.
2) In the "Content Settings" popup, click the "All Cookies and Site Data" button under the "Cookies" section.
3) In the "Cookies and site data" popup, use the "Search Cookies" textbox to look up the domain that is the source of the IndexedDB.
4) Click on the domain entry in the list.
5) Click on the "indexed database" tag listed under the domain.
6) Click on the "Remove" button in the drop down detail for the indexed database.
Upvotes: 3
Reputation: 59
Alternatively, use your web application in a new incognito window, and close it when you're done: database deleted.
Upvotes: 0