Wie lösche ich indexedDB?

92

Ich arbeite in einem Projekt, bei dem IndexedDB verwendet wird. Da ich anfange, diese Technologie zu kennen, muss ich in der Lage sein, eine indizierte Datenbank von Hand zu löschen, damit ich von vorne beginnen kann.

Ich habe den Weg dazu in Firefox gefunden, aber ich kann den Weg für Google Chrome nicht finden.

Ich habe versucht, den Inhalt dieses Ordners zu löschen (ich verwende einen Mac):

{home}/Library/Application Support/Google/Chrome/Default/IndexedDB

Aber es scheint, dass Chrome die DB überall hat, so dass ich nicht von vorne anfangen kann.

PaquitoSoft
quelle

Antworten:

101

Theoretisch müssen Sie zum Löschen einer IndexedDB in Chrome lediglich Folgendes tun:

  1. Gehen Sie in Chrome zu Optionen> Unter der Haube> Inhaltseinstellungen> Alle Cookies und Site-Daten> Suchen Sie die Domain, in der Sie die IndexedDB erstellt haben
  2. Drücken Sie entweder das "X" oder klicken Sie auf "Indizierte Datenbank"> Entfernen

In Windows befindet sich die Datei hier:

%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\IndexedDB

Gehen Sie auf dem Mac wie folgt vor:

  1. Gehen Sie in Chrome zu "Einstellungen" (oder "Einstellungen" im Chrome-Menü).
  2. Klicken Sie auf "Erweiterte Einstellungen anzeigen" (unten auf der Seite).
  3. Gehen Sie zu "Datenschutz"> "Inhaltseinstellungen"> "Alle Cookies und Site-Daten"> und suchen Sie die Domain, in der Sie die IndexedDB erstellt haben
  4. Drücken Sie entweder das "X" oder klicken Sie auf "Indizierte Datenbank"> Entfernen

Auf dem Mac befindet sich der Ordner hier:

/Users/[USERNAME]/Library/Application Support/Google/Chrome/Default/IndexedDB/

Unter Linux befindet sich der Ordner unter:

/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/
Todd Moses
quelle
2
Chrome für OS X verfügt weder über einen Menüpunkt "Optionen" noch über einen Verweis auf "Unter der Haube". Daher kann dies für einige Benutzer ein verwirrender Hinweis sein.
Mark Caufman
3
Unter OS X können Sie über "Chrome> Browserdaten löschen ..." dorthin gelangen, den Dialog schließen und dann zu "Erweiterte Einstellungen" anstelle von "Unter der Haube" wechseln. Danach ist es ~ wie oben.
Natevw
56
Ich denke, es ist einfacher, indexedDB.deleteDatabase ("databaseName") in der Konsole auszuführen.
user854301
1
Unter OSX Chrome v31 Schritt: 1. Einstellungen> Erweiterte Einstellungen anzeigen ...> Datenschutz> Inhaltseinstellungen ...> Cookies> Alle Cookies und Site-Daten ... 2. Suchen Sie, um Ihre IP zu filtern. 3. Klicken Sie auf Indexed database. 4. Entfernen Sie es!
Amo Wu
Vielleicht ist es Chrome unter Linux oder eine neuere Version, aber meiner Erfahrung nach sind hier die Schritte, um dorthin zu gelangen: 1. Einstellungen> Erweiterte Einstellungen anzeigen ...> Inhaltseinstellungen> Alle Cookies und Site-Daten finden die Domain, in der Sie die erstellt haben IndexedDB 2. Drücken Sie entweder das "X" oder klicken Sie auf "Indizierte Datenbank"> Entfernen
Software Prophets
160

Ich habe in Chrome erfolgreich Folgendes ausgeführt:

indexedDB.deleteDatabase('DB NAME')
Judson
quelle
14
Dies schlug für mich immer wieder fehl, dann wurde mir klar, dass ich zuerst die Datenbank schließen musste. In meinem Erfolgshandler habe ich einen praktischen Verweis auf die Datenbank (e.target.result), damit ich close () darauf aufrufen kann. Nur dann kann deleteDatabase ('DB NAME') aufgerufen werden. Sie müssen auch mit der rechten Maustaste klicken und 'refresh indexedDB' verwenden, wenn Sie sich auf der Registerkarte Ressourcen der Chrome Dev Tools befinden, um das Ergebnis des Löschvorgangs anzuzeigen.
Fullstacklife
Der Hostname für die Chrome-App konnte nicht gefunden werden. Dies funktioniert jedoch, wenn Sie die App überprüfen.
Khany
29

Alternativ können Sie dies in der Entwicklerkonsole mit dem folgenden Befehl tun:

indexedDB.deleteDatabase("databaseName")
user854301
quelle
1
Dies ist der einfachste Weg. Sie müssen nur mit der rechten Maustaste auf "IndexedDB" in den Ressourcen klicken und "Refresh IndexedDB" auswählen, um zu bestätigen, dass die Datenbank gezappt wurde.
Velojet
10

Im Chrome-Webkit können Sie webkitGetDatabaseNamesalle Datenbanknamen zurückgeben

Mit diesem Code können Sie alle lokalen indizierten DBs löschen:

window.indexedDB.webkitGetDatabaseNames().onsuccess = function(sender,args)
{
    var r = sender.target.result;
    for(var i in r)
        indexedDB.deleteDatabase(r[i]);
}; 
RevoLab
quelle
5

Führen Sie im OSX-Terminalemulator Folgendes aus, um alle Chrome IndexedDB-Datenbanken zu entfernen .

rm -rf ${HOME}/Library/Application\ Support/Google/Chrome/Default/IndexedDB/*

Starten Sie nun Ihren Browser neu und fertig.


Da ich IndexedDB-Datenbanken sehr oft löschen muss, habe ich in meinem ~. / Bash_profile einen Alias ​​eingerichtet.

alias purge-idb="rm -rf ${HOME}/Library/Application\ Support/Google/Chrome/Default/IndexedDB/*"
Tom Himanen
quelle
3

So löschen Sie eine IndexedDB aus der OS X-Version von Chrome:

1) Zeigen Sie in den Einstellungen Erweiterte Einstellungen an und klicken Sie dann im Abschnitt "Datenschutz" auf die Schaltfläche "Inhaltseinstellungen".

2) Klicken Sie im Popup "Inhaltseinstellungen" im Abschnitt "Cookies" auf die Schaltfläche "Alle Cookies und Site-Daten".

3) Verwenden Sie im Popup "Cookies und Site-Daten" das Textfeld "Cookies suchen", um die Domain zu suchen, aus der die IndexedDB stammt.

4) Klicken Sie auf den Domaineintrag in der Liste.

5) Klicken Sie auf das Tag "Indizierte Datenbank", das unter der Domäne aufgeführt ist.

6) Klicken Sie im Dropdown-Detail für die indizierte Datenbank auf die Schaltfläche "Entfernen".

Mark Caufman
quelle
2

Im Debian GNU / Linux-Verzeichnis

/home/[username‹/.config/google-chrome/Default/IndexedDB/chrome-xxx.indexeddb.leveldb/

enthält reguläre Dateien (zum Beispiel):

000003.log, CURRENT, LOCK, LOG, MANIFEST-000002

Alexander Lubyagin
quelle
2

Es ist nicht möglich, die IndexedDB-Datenbank (im Gegensatz zu Speichern und Indizes) programmgesteuert zu löschen.

In diesem Beitrag wird der Speicherort der Datenbank auf Windows-Systemen für Firefox und Chrome für manuelle Problemumgehungen angegeben .

Update: Dank des Entwicklers Joshua Bell implementiert Chrome eine nicht spezifikationsgerechte (aber wahnsinnig nützliche) deleteDatabaseMethode für das window.indexedDBObjekt. Hier ist der Fehler , der diesen Patch gelandet hat. Darüber hinaus können Sie in neueren IE-Versionen Datenbanken über ein Einstellungsfeld löschen .

buley
quelle
2

Schreiben Sie dieses Codesegment in die Konsole

window.indexedDB.deleteDatabase(<your db name>)

isambitd
quelle
2

Chrome Developer Tools haben jetzt die Option, alle Datenbanken für eine App unter "Anwendung / Speicher löschen" zu löschen.

Aur Saraf
quelle
2

Chrome -> Inspector Window -> Application -> siehe linkes Menü -> Storage -> IndexedDB

Patrick
quelle
1

Um die Antwort von @ Judson zu vervollständigen, basierend auf dem Kommentar von @ fullstacklife; Um IndexedDB in Chrome mit Javascript zu löschen , sollten Sie:

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");
    };
Community Ans
quelle
0

Alternativ können Sie Ihre Webanwendung in einem neuen Inkognito-Fenster verwenden und schließen, wenn Sie fertig sind: Datenbank gelöscht.

Watsoup
quelle
0

In Chrome OSX- / Benutzer / Benutzer / Bibliothek / Anwendungsunterstützung / Google / Chrome / Standard / IndexedDB Firefox OSX - Benutzer / Benutzer / Bibliothek / Anwendungsunterstützung / Firefox / Profile / 4zaemxcn.default / indexedDB

Sie müssen nur den Bibliotheksordner sichtbar machen. Alle Dateien werden in Ordnern gespeichert (die als Domänenname bezeichnet werden), und die Dateien verwenden Hash. Sie können jedoch den Namen der Datenbank daraus ermitteln. Sie können Daten aus IDB löschen, da es sich um eine clientseitige Datenbank handelt und alle Daten lokal gespeichert sind.

stefan
quelle
0

In Windows können Sie die gesamten IndexedDB-Datenbanken manuell löschen, indem Sie das IndexedDB-Verzeichnis für den Browser suchen und löschen

Für Chrome:

C: \ Benutzer \ Benutzername \ AppData \ Local \ Google \ Chrome \ Benutzerdaten \ Profil 1 \ IndexedDB

Sie können jeden Ordner löschen, der die indizierte Datenbank löscht. Sie können jetzt von vorne beginnen.

Naveen Santhosh
quelle
0

Dies ist vielleicht übertrieben für Ihre spezielle Frage, aber ich bin immer wieder hier gelandet, um meine IDB zu löschen.

Meine Lösung basierte letztendlich auf der Dokumentation von Mozilla , erforderte jedoch, dass ich zuerst die Datenbank schließe.

In Javascript sah der Code für mich folgendermaßen aus:

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");
};
User632716
quelle
0

Ich musste eine indizierte Datenbank in Chrome loswerden. Also suche ich mit MasterSeeker auf meinem Computer nach diesem miesen Ding namens "E-Mail-Assistent". Fand das Ding in einer Reihe von Ordnern, die in Chrome indiziert waren. Es schien zu einfach, dass ich diese Dateien einfach lösche. Ich sah auf wie und landete hier. Ich habe mit meinem Windows 10-PC die Chrome-Einstellungen aufgerufen. Ich habe gerade versucht, die Browserdaten zu löschen. Presto - alle diese Dateien sind aus indexedDB verschwunden, einschließlich der gefürchteten Crapola "E-Mail-Assistent". Wenn ich jetzt in den Ordner indexedDB schaue, sehe ich nur noch https_mail.google.com_0.indexeddb.leveldb - was wie eine sichere, nicht irritierende Sache aussieht.

Sheila Bliss
quelle