Come eliminare indexedDB?


92

Sto lavorando a un progetto che prevede l'utilizzo di IndexedDB. Mentre sto iniziando a conoscere questa tecnologia, devo essere in grado di eliminare manualmente un database indicizzato in modo da poter ricominciare da capo.

Ho trovato il modo per farlo in Firefox, ma non riesco a trovare il modo per Google Chrome.

Ho provato a eliminare il contenuto di questa cartella (sto usando Mac):

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

ma sembra che Chrome abbia ancora il DB ovunque, quindi non posso ricominciare da capo.

Risposte:


101

In teoria, tutto ciò che devi fare per eliminare un IndexedDB in Chrome è:

  1. In Chrome, vai su Opzioni> Roba da smanettoni> Impostazioni contenuti> Tutti i cookie e i dati dei siti> trova il dominio in cui hai creato IndexedDB
  2. Premi la "X" o fai clic su "Database indicizzato"> Rimuovi

In Windows, il file si trova qui:

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

Su Mac, procedi come segue:

  1. In Chrome, vai su "Impostazioni" (o "Preferenze" nel menu Chrome)
  2. Fai clic su "mostra impostazioni avanzate" (in fondo alla pagina)
  3. Vai su "Privacy"> "Impostazioni contenuti"> "Tutti i cookie e i dati dei siti"> trova il dominio in cui hai creato IndexedDB
  4. Premi la "X" o fai clic su "Database indicizzato"> Rimuovi

Su Mac, la cartella si trova qui:

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

Su Linux, la cartella si trova in:

/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/

2
Chrome per OS X non ha una voce di menu "Opzioni" o alcun riferimento a "Roba da smanettoni", quindi questo potrebbe creare confusione per alcune persone.
Mark Caufman

3
Su OS X puoi accedervi tramite "Chrome> Cancella dati di navigazione ...", chiudere la finestra di dialogo e quindi andare su "Impostazioni avanzate" invece di "Roba da smanettoni". Dopodiché è ~ come sopra.
natevw

56
Penso che sia più facile eseguire indexedDB.deleteDatabase ("databaseName") nella console.
user854301

1
Nel passaggio OSX Chrome v31: 1. Impostazioni> Mostra impostazioni avanzate ...> Privacy> Impostazioni contenuti ...> Cookie> Tutti i cookie e i dati dei siti ... 2. Cerca per filtrare il tuo IP. 3. Fare clic su Indexed database. 4. Rimuoverlo!
Amo Wu

Forse è Chrome sotto Linux o forse è una versione più recente, ma ecco i passaggi per arrivarci nella mia esperienza: 1. Impostazioni> Mostra impostazioni avanzate ...> Impostazioni contenuti> Tutti i cookie e i dati del sito trova il dominio in cui hai creato il IndexedDB 2. Premi la "X" o fai clic su "Database indicizzato"> Rimuovi
Software Prophets

160

Ho avuto successo eseguendo quanto segue in Chrome:

indexedDB.deleteDatabase('DB NAME')

14
Questo ha continuato a fallire per me, poi ho capito che dovevo prima chiudere il DB. Nel mio gestore di successo tengo un pratico riferimento al DB (e.target.result) in modo da poter richiamare close () su di esso. Solo allora puoi chiamare deleteDatabase ('DB NAME'). Dovrai anche fare clic con il pulsante destro del mouse e utilizzare "refresh indexedDB" se ti trovi nella scheda risorse degli strumenti di sviluppo di Chrome per vedere il risultato dell'eliminazione.
fullstacklife

non è stato possibile trovare il nome host per l'app Chrome, ma funziona quando si ispeziona l'app.
khany

29

Alternarive è farlo nella console degli sviluppatori, usando questo comando:

indexedDB.deleteDatabase("databaseName")

1
Questo è il modo più semplice. Devi solo fare clic con il pulsante destro del mouse su "IndexedDB" in Risorse e selezionare "Aggiorna IndexedDB" per confermare che il database è stato zappato.
Velojet

10

In Chrome webkit puoi usare webkitGetDatabaseNamesche restituisce tutti i nomi di database

Con questo codice, puoi eliminare tutti i database indicizzati locali:

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

5

Per rimuovere tutti i database IndexedDB di Chrome, eseguire quanto segue nell'emulatore di terminale OSX.

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

Ora riavvia il browser e il gioco è fatto.


Poiché ho bisogno di eliminare i database IndexedDB molto spesso, ho impostato un alias nel mio ~. / Bash_profile.

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

3

Per eliminare un IndexedDB dalla versione OS X di Chrome:

1) In Preferenze, mostra Impostazioni avanzate, quindi fai clic sul pulsante "Impostazioni contenuto" nella sezione "Privacy".

2) Nella finestra popup "Impostazioni contenuto", fare clic sul pulsante "Tutti i cookie e i dati dei siti" nella sezione "Cookie".

3) Nella finestra popup "Cookie e dati dei siti", utilizza la casella di testo "Cerca cookie" per cercare il dominio che è l'origine di IndexedDB.

4) Fare clic sulla voce di dominio nell'elenco.

5) Fare clic sul tag "database indicizzato" elencato sotto il dominio.

6) Fare clic sul pulsante "Rimuovi" nel menu a discesa dei dettagli per il database indicizzato.


2

Nella directory Debian GNU / Linux

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

contiene file regolari (ad esempio):

000003.log, CORRENTE, BLOCCO, LOG, MANIFEST-000002


2

Non è possibile eliminare il database IndexedDB (al contrario di archivi e indici) a livello di codice.

Per quanto riguarda le soluzioni alternative manuali, questo post descrive in dettaglio la posizione del database sui sistemi Windows per Firefox e Chrome.

Aggiornamento: grazie allo sviluppatore Joshua Bell, Chrome implementa un deleteDatabasemetodo fuori specifica (ma incredibilmente utile) window.indexedDBsull'oggetto. Ecco il crbug che ha atterrato questa patch. Inoltre, nelle versioni più recenti di IE, puoi eliminare i database tramite un pannello delle impostazioni .


2

scrivi questo segmento di codice nella console

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


2

Gli strumenti per sviluppatori di Chrome ora hanno un'opzione per eliminare tutti i database per un'app, in "Applicazione / Cancella spazio di archiviazione".


2

Chrome -> Finestra di ispezione -> Applicazione -> guarda il menu a sinistra -> Archiviazione -> IndexedDB


1

Per completare la risposta di @ Judson, basata sul commento di @ fullstacklife; per eliminare IndexedDB in chrome usando javascript dovresti:

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

0

In alternativa, utilizza la tua applicazione web in una nuova finestra di navigazione in incognito e chiudila quando hai finito: database eliminato.


0

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

Hai solo bisogno di rendere visibile la cartella della libreria. Tutti i file sono archiviati in cartelle (che sono chiamate come nome di dominio) ei file usano hash, ma puoi capire il nome del database da esso. È possibile eliminare i dati da IDB perché è un database lato client e tutti i dati sono archiviati localmente.


0

In Windows, puoi eliminare manualmente tutti i database IndexedDB individuando la directory IndexedDB per il browser ed eliminandola

Per Chrome:

C: \ Users \ nome-utente \ AppData \ Local \ Google \ Chrome \ User Data \ Profile 1 \ IndexedDB

È possibile eliminare ogni cartella che cancella il database indicizzato. Puoi ricominciare adesso.


0

Questo è forse eccessivo per la tua domanda specifica, ma ho continuato a finire qui nella mia lotta per eliminare il mio idb.

La mia soluzione alla fine era basata sulla documentazione di Mozilla , ma richiedeva di chiudere prima il database.

Per me, in Javascript, il codice aveva questo aspetto:

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

0

Avevo bisogno di sbarazzarmi di un database indicizzato in Chrome. Quindi cerco questa cosa schifosa chiamata "assistente email" sul mio computer usando MasterSeeker. Ho trovato l'oggetto in un mucchio di cartelle indicizzateDB in Chrome. Sembrava troppo facile eliminare quei file. Ho guardato come e sono finito qui. Sono andato alle impostazioni di Chrome con il mio PC Windows 10. Ho appena provato a cancellare i dati di navigazione. Presto: tutti quei file sono scomparsi da indexedDB, inclusa quella temuta crapola "assistente di posta elettronica". Ora, quando guardo nella cartella indexedDB, tutto quello che vedo che è riapparso è https_mail.google.com_0.indexeddb.leveldb, che sembra una cosa sicura e non irritante.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.