¿Cómo eliminar indexedDB?

92

Estoy trabajando en un proyecto que implica el uso de IndexedDB. Como estoy comenzando a conocer esta tecnología, necesito poder eliminar un indexedDB a mano para poder comenzar de nuevo.

Encontré la forma de hacerlo en Firefox, pero no puedo encontrar la forma de Google Chrome.

Intenté eliminar el contenido de esta carpeta (estoy usando Mac):

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

pero parece que Chrome todavía tiene la base de datos en cualquier lugar, así que no puedo empezar de nuevo.

PaquitoSoft
fuente

Respuestas:

101

En teoría, todo lo que necesita hacer para eliminar un IndexedDB en Chrome es:

  1. En Chrome, vaya a Opciones> Avanzado> Configuración de contenido> Todas las cookies y datos del sitio> busque el dominio donde creó IndexedDB
  2. Presione la "X" o haga clic en "Base de datos indexada"> Eliminar

En Windows, el archivo se encuentra aquí:

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

En Mac, haga lo siguiente:

  1. En Chrome, vaya a "Configuración" (o "Preferencias" en el menú de Chrome)
  2. Haga clic en "mostrar configuración avanzada" (en la parte inferior de la página)
  3. Vaya a "Privacidad"> "Configuración de contenido"> "Todas las cookies y datos del sitio"> busque el dominio donde creó el IndexedDB
  4. Presione la "X" o haga clic en "Base de datos indexada"> Eliminar

En Mac, la carpeta se encuentra aquí:

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

En Linux, la carpeta se encuentra en:

/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/
Todd Moisés
fuente
2
Chrome para OS X no tiene un elemento de menú "Opciones" ni ninguna referencia a "Bajo el capó", por lo que esta puede ser una pista confusa para algunas personas.
Mark Caufman
3
En OS X, puede acceder a través de "Chrome> Borrar datos de navegación ...", cerrar el cuadro de diálogo y luego ir a "Configuración avanzada" en lugar de "Avanzado". Después de eso es ~ igual que arriba.
natevw
56
Creo que es más fácil ejecutar indexedDB.deleteDatabase ("databaseName") en la consola.
user854301
1
En OSX Chrome v31, paso: 1. Configuración> Mostrar configuración avanzada ...> Privacidad> Configuración de contenido ...> Cookies> Todas las cookies y datos del sitio ... 2. Busque para filtrar su IP. 3. Haga clic en Indexed database. 4. ¡Quítelo!
Amo Wu
Tal vez sea Chrome en Linux o tal vez sea una versión más reciente, pero estos son los pasos para llegar allí en mi experiencia: 1. Configuración> Mostrar configuración avanzada ...> Configuración de contenido> Todas las cookies y los datos del sitio encuentran el dominio donde creó el IndexedDB 2. Presione la "X" o haga clic en "Base de datos indexada"> Eliminar
Software Prophets
160

Tuve éxito al ejecutar lo siguiente en Chrome:

indexedDB.deleteDatabase('DB NAME')
Judson
fuente
14
Esto siguió fallando para mí, luego me di cuenta de que primero necesitaba cerrar la base de datos. En mi controlador de éxito guardo una referencia útil a la base de datos (e.target.result) para poder llamar a close () en él. Solo entonces puede llamar a deleteDatabase ('DB NAME'). También deberá hacer clic derecho y usar 'actualizar indexedDB' si está en la pestaña de recursos de herramientas de desarrollo de Chrome para ver el resultado de la eliminación.
fullstacklife
No pude encontrar el nombre de host para la aplicación Chrome, pero esto funciona cuando inspecciona la aplicación.
khany
29

Alternarive es hacerlo en la consola de desarrolladores, usando este comando:

indexedDB.deleteDatabase("databaseName")
usuario854301
fuente
1
Esta es la manera más fácil. Solo necesita hacer clic derecho en 'IndexedDB' en Recursos y seleccionar 'Actualizar IndexedDB' para confirmar que la base de datos ha sido eliminada.
Velojet
10

En Chrome webkit puede usar webkitGetDatabaseNamesque devuelve todos los nombres de bases de datos

Con este código, puede eliminar todos los indexedDB locales:

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

Para eliminar todas las bases de datos de Chrome IndexedDB, ejecute lo siguiente en el emulador de terminal OSX.

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

Ahora reinicia tu navegador y listo.


Debido a que necesito purgar las bases de datos IndexedDB con mucha frecuencia, he configurado un alias en mi ~. / Bash_profile.

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

Para eliminar un IndexedDB de la versión OS X de Chrome:

1) En Preferencias, muestre Configuración avanzada y luego haga clic en el botón "Configuración de contenido" en la sección "Privacidad".

2) En la ventana emergente "Configuración de contenido", haga clic en el botón "Todas las cookies y datos del sitio" en la sección "Cookies".

3) En la ventana emergente "Cookies y datos del sitio", use el cuadro de texto "Buscar cookies" para buscar el dominio que es la fuente de IndexedDB.

4) Haga clic en la entrada de dominio en la lista.

5) Haga clic en la etiqueta "base de datos indexada" que aparece debajo del dominio.

6) Haga clic en el botón "Eliminar" en el detalle desplegable de la base de datos indexada.

Mark Caufman
fuente
2

En el directorio Debian GNU / Linux

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

contiene archivos regulares (por ejemplo):

000003.log, ACTUAL, BLOQUEO, REGISTRO, MANIFEST-000002

Alexander Lubyagin
fuente
2

No es posible eliminar la base de datos IndexedDB (a diferencia de las tiendas y los índices) mediante programación.

En cuanto a las soluciones manuales, esta publicación detalla la ubicación de la base de datos en los sistemas Windows para Firefox y Chrome.

Actualización: Gracias al desarrollador Joshua Bell, Chrome implementa un deleteDatabasemétodo fuera de especificación (pero increíblemente útil) en el window.indexedDBobjeto. Aquí está el crbug que aterrizó en este parche. Además, en las versiones más recientes de IE, puede eliminar bases de datos a través de un panel de configuración .

Buley
fuente
2

escribe este segmento de código en la consola

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

isambitd
fuente
2

Las herramientas para desarrolladores de Chrome ahora tienen una opción para eliminar todas las bases de datos de una aplicación, en "Aplicación / Borrar almacenamiento".

Aur Saraf
fuente
2

Chrome -> Ventana de inspección -> Aplicación -> mira el menú de la izquierda -> Almacenamiento -> IndexedDB

Patricio
fuente
1

Para completar la respuesta de @ Judson, basada en el comentario de @ fullstacklife; para eliminar IndexedDB en Chrome usando javascript , debe:

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");
    };
Comunidad Ans
fuente
0

Alternativamente, use su aplicación web en una nueva ventana de incógnito y ciérrela cuando haya terminado: base de datos eliminada.

watsoup
fuente
0

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

Solo necesita hacer visible la carpeta de la biblioteca. Todos los archivos se almacenan en carpetas (que se denominan como nombre de dominio) y los archivos usan hash, pero puede averiguar el nombre de la base de datos a partir de ellos. Puede eliminar datos de IDB porque es una base de datos del lado del cliente y todos los datos se almacenan localmente.

stefan
fuente
0

En Windows, puede eliminar manualmente todas las bases de datos de IndexedDB localizando el directorio IndexedDB para el navegador y eliminándolo

Para Chrome:

C: \ Users \ nombre de usuario \ AppData \ Local \ Google \ Chrome \ User Data \ Profile 1 \ IndexedDB

Puede eliminar todas las carpetas que borran el indexedDB. Puedes empezar de nuevo ahora.

Naveen santhosh
fuente
0

Esto tal vez sea excesivo para su pregunta específica, pero seguí terminando aquí en mi lucha por eliminar mi idb.

Mi solución al final se basó en la documentación de mozilla , pero requería que primero cerrara la base de datos.

Para mí, en Javascript, el código se veía así:

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

Necesitaba deshacerme de un indexedDB en Chrome. Así que busco esta cosa pésima llamada "asistente de correo electrónico" en mi computadora usando MasterSeeker. Encontré la cosa en un montón de carpetas que estaban indexadas DB en Chrome. Parecía demasiado fácil eliminar esos archivos. Busqué cómo y terminé aquí. Fui a la configuración de Chrome con mi PC con Windows 10. Solo intenté borrar los datos de navegación. Presto: todos esos archivos desaparecieron de indexedDB, incluido el temido crapola del "asistente de correo electrónico". Ahora, cuando miro en la carpeta indexedDB, todo lo que veo que ha reaparecido es https_mail.google.com_0.indexeddb.leveldb, que parece algo seguro y no irritante.

Sheila Bliss
fuente