Como excluir indexedDB?

92

Estou trabalhando em um projeto que envolve o uso de IndexedDB. Como estou começando a conhecer essa tecnologia, preciso ser capaz de excluir um indexedDB manualmente para poder começar de novo.

Eu encontrei a maneira de fazer isso no Firefox, mas não consigo encontrar a maneira de fazer o Google Chrome.

Tentei excluir o conteúdo desta pasta (estou usando Mac):

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

mas parece que o Chrome ainda tem o banco de dados em qualquer lugar, então não posso começar de novo.

PaquitoSoft
fonte

Respostas:

101

Em teoria, tudo o que você precisa fazer para excluir um IndexedDB no Chrome é:

  1. No Chrome, vá para Opções> Configurações avançadas> Configurações de conteúdo> Todos os cookies e dados do site> encontre o domínio onde você criou o IndexedDB
  2. Clique no "X" ou clique em "Banco de dados indexado"> Remover

No Windows, o arquivo está localizado aqui:

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

No Mac, faça o seguinte:

  1. No Chrome, vá para "Configurações" (ou "Preferências" no menu do Chrome)
  2. Clique em "mostrar configurações avançadas" (na parte inferior da página)
  3. Vá para "Privacidade"> "Configurações de conteúdo"> "Todos os cookies e dados do site"> encontre o domínio onde você criou o IndexedDB
  4. Clique no "X" ou clique em "Banco de dados indexado"> Remover

No Mac, a pasta está localizada aqui:

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

No Linux, a pasta está localizada em:

/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/
Todd Moses
fonte
2
O Chrome para OS X não possui um item de menu "Opções" ou qualquer referência a "Configurações avançadas", portanto, essa pode ser uma dica confusa para algumas pessoas.
Mark Caufman
3
No OS X, você pode acessá-lo por meio de "Chrome> Limpar dados de navegação ...", fechar a caixa de diálogo e ir para "Configurações avançadas" em vez de "Configurações avançadas". Depois disso, é ~ o mesmo que acima.
natevw
56
Acho que é mais fácil executar indexedDB.deleteDatabase ("databaseName") no console.
user854301
1
No OSX Chrome v31 passo: 1. Configurações> Mostrar configurações avançadas ...> Privacidade> Configurações de conteúdo ...> Cookies> Todos os cookies e dados do site ... 2. Pesquise para filtrar seu IP. 3. Clique em Indexed database. 4. Remova-o!
Amo Wu
Talvez seja o Chrome no Linux ou talvez seja uma versão mais recente, mas aqui estão as etapas para chegar lá na minha experiência: 1. Configurações> Mostrar configurações avançadas ...> Configurações de conteúdo> Todos os cookies e dados do site encontre o domínio onde você criou o IndexedDB 2. Pressione "X" ou clique em "Banco de dados indexado"> Remover
Software Profhets
160

Tive sucesso executando o seguinte no Chrome:

indexedDB.deleteDatabase('DB NAME')
Judson
fonte
14
Isso continuou falhando para mim, então percebi que precisava primeiro fechar o banco de dados. Em meu gerenciador de sucesso, mantenho uma referência útil ao banco de dados (e.target.result) para que possa chamar close () nele. Só então pode chamar deleteDatabase ('DB NAME'). Você também precisará clicar com o botão direito e usar 'atualizar indexedDB' se estiver na guia de recursos das ferramentas de desenvolvimento do Chrome para ver o resultado da exclusão.
fullstacklife
não foi possível encontrar o nome do host para o aplicativo Chrome, mas isso funciona quando você inspeciona o aplicativo.
khany,
29

Alternarive é fazê-lo no console do desenvolvedor, usando este comando:

indexedDB.deleteDatabase("databaseName")
user854301
fonte
1
Esta é a maneira mais fácil. Você só precisa clicar com o botão direito em 'IndexedDB' em Recursos e selecionar 'Atualizar IndexedDB' para confirmar que o banco de dados foi zapped.
Velojet
10

No Chrome webkit você pode usar o webkitGetDatabaseNamesque retorna todos os nomes de banco de dados

Com este código, você pode excluir todos os indexedDB locais:

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

Para remover todos os bancos de dados IndexedDB do Chrome, execute o seguinte no emulador de terminal OSX.

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

Agora reinicie seu navegador e pronto.


Como preciso limpar bancos de dados IndexedDB com frequência, configurei um alias em meu ~. / Bash_profile.

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

Para excluir um IndexedDB da versão OS X do Chrome:

1) Em Preferências, mostre Configurações avançadas e clique no botão "Configurações de conteúdo" na seção "Privacidade".

2) No pop-up "Configurações de conteúdo", clique no botão "Todos os cookies e dados do site" na seção "Cookies".

3) No pop-up "Cookies e dados do site", use a caixa de texto "Pesquisar cookies" para pesquisar o domínio que é a fonte do IndexedDB.

4) Clique na entrada de domínio na lista.

5) Clique na tag "banco de dados indexado" listada no domínio.

6) Clique no botão "Remover" na lista suspensa de detalhes do banco de dados indexado.

Mark Caufman
fonte
2

No diretório Debian GNU / Linux

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

contém arquivos regulares (por exemplo):

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

Alexander Lubyagin
fonte
2

Não é possível excluir o banco de dados IndexedDB (em oposição a armazenamentos e índices) programaticamente.

Quanto às soluções alternativas manuais, esta postagem detalha a localização do banco de dados em sistemas Windows para Firefox e Chrome.

Atualização: Graças ao desenvolvedor Joshua Bell, o Chrome implementa um deleteDatabasemétodo fora das especificações (mas extremamente útil) no window.indexedDBobjeto. Aqui está o crbug que conseguiu esse patch. Além disso, em versões mais recentes do IE, você pode excluir bancos de dados por meio de um painel de configurações .

Buley
fonte
2

escreva este segmento de código no console

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

isambitd
fonte
2

As ferramentas do desenvolvedor Chrome agora têm a opção de excluir todos os bancos de dados de um aplicativo, em "Aplicativo / Limpar armazenamento".

Aur Saraf
fonte
2

Chrome -> Janela do Inspetor -> Aplicativo -> olhe no menu à esquerda -> Armazenamento -> IndexedDB

patrick
fonte
1

Para completar a resposta de @Judson, com base no comentário de @fullstacklife; para excluir IndexedDB no Chrome usando javascript, você deve:

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");
    };
Resposta da comunidade
fonte
0

Como alternativa, use seu aplicativo da web em uma nova janela anônima e feche-a quando terminar: banco de dados excluído.

watsoup
fonte
0

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

Você só precisa tornar visível a pasta da biblioteca. Todos os arquivos são armazenados em pastas (que são chamadas de nome de domínio) e os arquivos usam hash, mas você pode descobrir o nome do banco de dados a partir dele. Você pode excluir dados do IDB porque é um banco de dados do lado do cliente e todos os dados são armazenados localmente.

Stefan
fonte
0

No Windows, você pode excluir manualmente todos os bancos de dados IndexedDB localizando o diretório IndexedDB para o navegador e excluindo-o

Para Chrome:

C: \ Users \ user-name \ AppData \ Local \ Google \ Chrome \ User Data \ Profile 1 \ IndexedDB

Você pode excluir cada pasta que limpa o indexedDB. Você pode começar de novo agora.

Naveen santhosh
fonte
0

Isso talvez seja um exagero para sua pergunta específica, mas continuei terminando aqui na minha luta para excluir meu idb.

Minha solução no final foi baseada na documentação do Mozilla , mas exigiu que eu primeiro fechasse o banco de dados.

Para mim, em Javascript, o código era assim:

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
fonte
0

Eu precisava me livrar de um indexedDB no Chrome. Então eu procuro por essa coisa nojenta chamada "assistente de e-mail" no meu computador usando o MasterSeeker. Encontrei a coisa em um monte de pastas que foram indexedDB no Chrome. Parecia muito fácil eu simplesmente excluir esses arquivos. Eu pesquisei como e acabei aqui. Eu fui para as configurações do Chrome com meu PC com Windows 10. Eu apenas tentei limpar os dados de navegação. Presto - todos aqueles arquivos desapareceram de indexedDB, incluindo aquela crapola de "assistente de email" temida. Agora, quando olho na pasta indexedDB, tudo o que vejo que reapareceu é https_mail.google.com_0.indexeddb.leveldb - que parece uma coisa segura e não irritante.

Sheila Bliss
fonte