Jak usunąć indexedDB?

92

Pracuję w projekcie, który polega na korzystaniu z IndexedDB. Kiedy zaczynam poznawać tę technologię, muszę mieć możliwość ręcznego usunięcia indeksowanej bazy danych, aby móc zacząć od nowa.

Znalazłem sposób na zrobienie tego w przeglądarce Firefox, ale nie mogę znaleźć sposobu na Google Chrome.

Próbowałem usunąć zawartość tego folderu (używam komputera Mac):

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

ale wygląda na to, że Chrome nadal ma bazę danych w dowolnym miejscu, więc nie mogę zacząć od nowa.

PaquitoSoft
źródło

Odpowiedzi:

101

Teoretycznie wszystko, co musisz zrobić, aby usunąć IndexedDB w Chrome, to:

  1. W przeglądarce Chrome przejdź do Opcje> Dla zaawansowanych> Ustawienia treści> Wszystkie pliki cookie i dane witryn> znajdź domenę, w której utworzyłeś IndexedDB
  2. Naciśnij „X” lub kliknij „Indeksowana baza danych”> Usuń

W systemie Windows plik znajduje się tutaj:

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

Na komputerze Mac wykonaj następujące czynności:

  1. W przeglądarce Chrome przejdź do „Ustawień” (lub „Preferencji” w menu Chrome)
  2. Kliknij „pokaż ustawienia zaawansowane” (u dołu strony)
  3. Otwórz „Prywatność”> „Ustawienia treści”> „Wszystkie pliki cookie i dane witryn”> znajdź domenę, w której utworzono IndexedDB.
  4. Naciśnij „X” lub kliknij „Indeksowana baza danych”> Usuń

Na komputerze Mac folder znajduje się tutaj:

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

W systemie Linux folder znajduje się pod adresem:

/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/
Todd Moses
źródło
2
Chrome dla OS X nie ma pozycji menu „Opcje” ani żadnego odniesienia do „Pod maską”, więc może to być myląca wskazówka dla niektórych osób.
Mark Caufman,
3
W OS X możesz się tam dostać za pomocą „Chrome> Wyczyść dane przeglądania…”, zamknij okno dialogowe, a następnie przejdź do „Ustawień zaawansowanych” zamiast „Pod maską”. Potem jest ~ tak samo jak powyżej.
natevw
56
Myślę, że łatwiej jest uruchomić indexedDB.deleteDatabase ("databaseName") w konsoli.
user854301
1
W OSX Chrome v31 krok: 1. Ustawienia> Pokaż ustawienia zaawansowane ...> Prywatność> Ustawienia treści ...> Pliki cookie> Wszystkie pliki cookie i dane witryn ... 2. Wyszukaj, aby przefiltrować swój adres IP. 3. Kliknij Indexed database. 4. Usuń to!
Amo Wu
Może to Chrome pod Linuksem, a może jest to nowsza wersja, ale oto kroki, aby się tam dostać z mojego doświadczenia: 1. Ustawienia> Pokaż ustawienia zaawansowane ...> Ustawienia treści> Wszystkie pliki cookie i dane witryny znajdują domenę, w której utworzyłeś IndexedDB 2. Naciśnij „X” lub kliknij „Indexed Database”> Usuń
Software Prophets
160

Udało mi się uruchomić następujące elementy w przeglądarce Chrome:

indexedDB.deleteDatabase('DB NAME')
Judson
źródło
14
To ciągle zawodziło dla mnie, a potem zdałem sobie sprawę, że muszę najpierw zamknąć DB. W moim module obsługi sukcesu trzymam przydatne odniesienie do bazy danych (e.target.result), dzięki czemu mogę wywołać metodę close (). Dopiero wtedy można wywołać funkcję deleteDatabase („NAZWA DB”). Będziesz także musiał kliknąć prawym przyciskiem myszy i użyć funkcji „odśwież indeksowaną bazę danych”, jeśli jesteś na karcie zasobów narzędzi deweloperskich chrome, aby zobaczyć wynik usunięcia.
fullstacklife
nie można znaleźć nazwy hosta dla aplikacji Chrome, ale to działa, gdy sprawdzasz aplikację.
khany
29

Alternatywnie można to zrobić w konsoli programisty za pomocą tego polecenia:

indexedDB.deleteDatabase("databaseName")
user854301
źródło
1
To najłatwiejszy sposób. Wystarczy kliknąć prawym przyciskiem myszy „IndexedDB” w Zasobach i wybrać „Odśwież IndexedDB”, aby potwierdzić, że baza danych została zlikwidowana.
Velojet
10

W Chrome webkit możesz użyć, webkitGetDatabaseNamesktóry zwraca wszystkie nazwy baz danych

Za pomocą tego kodu możesz usunąć całą lokalną indeksowaną bazę danych:

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

Aby usunąć wszystkie bazy danych Chrome IndexedDB, uruchom następujące polecenie w emulatorze terminala OSX.

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

Teraz uruchom ponownie przeglądarkę i to wszystko.


Ponieważ bardzo często muszę czyścić bazy danych IndexedDB, skonfigurowałem alias w moim ~. / Bash_profile.

alias purge-idb="rm -rf ${HOME}/Library/Application\ Support/Google/Chrome/Default/IndexedDB/*"
Tom Himanen
źródło
3

Aby usunąć IndexedDB z wersji Chrome dla OS X:

1) W Preferencjach pokaż Ustawienia zaawansowane, a następnie kliknij przycisk „Ustawienia treści” w sekcji „Prywatność”.

2) W wyskakującym okienku „Ustawienia treści” kliknij przycisk „Wszystkie pliki cookie i dane witryn” w sekcji „Pliki cookie”.

3) W wyskakującym okienku „Pliki cookie i dane witryn” użyj pola tekstowego „Wyszukaj pliki cookie”, aby wyszukać domenę, która jest źródłem bazy danych IndexedDB.

4) Kliknij wpis domeny na liście.

5) Kliknij znacznik „zindeksowana baza danych” pod domeną.

6) Kliknij przycisk „Usuń” na liście rozwijanej zindeksowanej bazy danych.

Mark Caufman
źródło
2

W katalogu Debian GNU / Linux

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

zawiera zwykłe pliki (na przykład):

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

Alexander Lubyagin
źródło
2

Nie można usunąć bazy danych IndexedDB (w przeciwieństwie do sklepów i indeksów) programowo.

Jeśli chodzi o obejścia ręczne, ten post szczegółowo opisano lokalizację bazy danych w systemach Windows dla przeglądarek Firefox i Chrome.

Aktualizacja: Dzięki twórcy Joshua Bellowi Chrome implementuje deleteDatabasena window.indexedDBobiekcie metodę spoza specyfikacji (ale niesamowicie użyteczną) . Oto crbug który wylądował w tym patchu. Ponadto w nowszych wersjach IE można usuwać bazy danych za pomocą panelu ustawień .

buley
źródło
2

napisz ten segment kodu w konsoli

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

isambitd
źródło
2

Narzędzia dla programistów Chrome mają teraz opcję usunięcia wszystkich baz danych aplikacji w sekcji „Aplikacja / Wyczyść pamięć”.

Aur Saraf
źródło
2

Chrome -> Okno inspektora -> Aplikacja -> spójrz na menu po lewej stronie -> Pamięć -> IndexedDB

patrick
źródło
1

Aby uzupełnić odpowiedź @ Judson, na podstawie komentarza @ fullstacklife; aby usunąć IndexedDB w przeglądarce Chrome za pomocą javascript , należy:

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");
    };
Społeczność Ans
źródło
0

Ewentualnie użyj aplikacji internetowej w nowym oknie incognito i zamknij ją po zakończeniu: baza danych została usunięta.

watsoup
źródło
0

W chrome OSX- / Users / user / Library / Application Support / Google / Chrome / Default / IndexedDB Firefox OSX - Users / user / Library / Application Support / Firefox / Profiles / 4zaemxcn.default / indexedDB

Musisz tylko pokazać folder biblioteki. Wszystkie pliki są przechowywane w folderach (nazywanych nazwami domeny) i pliki używają skrótu, ale można na ich podstawie ustalić nazwę bazy danych. Możesz usunąć dane z IDB, ponieważ jest to baza danych po stronie klienta i wszystkie dane są przechowywane lokalnie.

stefan
źródło
0

W systemie Windows możesz ręcznie usunąć całe bazy danych IndexedDB, lokalizując katalog IndexedDB dla przeglądarki i usuwając go

Chrome:

C: \ Users \ nazwa-użytkownika \ AppData \ Local \ Google \ Chrome \ User Data \ Profile 1 \ IndexedDB

Możesz usunąć każdy folder, który czyści indexedDB. Możesz zacząć od nowa.

Naveen santhosh
źródło
0

To może być przesada w przypadku twojego konkretnego pytania, ale kończyłem tutaj w mojej walce o usunięcie mojego idb.

Ostatecznie moje rozwiązanie zostało oparte na dokumentacji Mozilli , ale wymagało, żebym najpierw zamknął bazę danych.

U mnie w Javascript kod wyglądał tak:

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
źródło
0

Musiałem pozbyć się indexedDB w Chrome. Wyszukuję więc na moim komputerze tę kiepską rzecz o nazwie „asystent poczty e-mail” za pomocą programu MasterSeeker. Znalazłem rzecz w paczce folderów, które były indeksowane w bazie danych w przeglądarce Chrome. Wydawało się zbyt łatwe, że po prostu usunąłem te pliki. Sprawdziłem jak i znalazłem się tutaj. Poszedłem do ustawień Chrome na moim komputerze z systemem Windows 10. Po prostu spróbowałem wyczyścić dane przeglądania. Presto - wszystkie te pliki zniknęły z indexedDB, łącznie z tą straszną „asystentką poczty elektronicznej” crapola. Teraz, kiedy patrzę w folder indexedDB, wszystko, co widzę, pojawiło się ponownie, to https_mail.google.com_0.indexeddb.leveldb - co wygląda na bezpieczną, nie irytującą rzecz.

Sheila Bliss
źródło