Как удалить indexedDB в Chrome

Я работаю в проекте, который включает в себя использование IndexedDB. Поскольку я начинаю знать эту технологию, мне нужно иметь возможность удалить indexedDB вручную, чтобы я мог начать все сначала.

Я нашел способ сделать это в Firefox, но я не могу найти способ для Google Chrome.

Я попытался удалить содержимое этой папки (я использую Mac):

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

но, похоже, Chrome все еще имеет db в любом месте, поэтому я не могу начать все сначала.

15 ответов


теоретически, все, что вам нужно сделать, чтобы удалить IndexedDB в Chrome:

  1. в Chrome выберите Параметры > под капотом > Настройки контента > все файлы cookie и данные сайта > найдите домен, в котором вы создали IndexedDB
  2. нажмите " X "или нажмите" индексированная база данных " > удалить

в Windows файл находится здесь:

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

на Mac, выполните следующие действия:

  1. в Chrome, перейдите в "Настройки" (или" настройки " в меню Chrome)
  2. нажать "Показать дополнительные настройки" (внизу страницы)
  3. перейдите в раздел "Конфиденциальность" > "Настройки контента" > "все файлы cookie и данные сайта" > найдите домен, в котором вы создали IndexedDB
  4. нажмите " X "или нажмите" индексированная база данных " > удалить

на Mac папка находится здесь:

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

в Linux папка находится по адресу:

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

У меня был успех, запустив следующее В Chrome:

indexedDB.deleteDatabase('DB NAME')

Alternarive должен сделать это в консоли разработчиков, используя следующую команду:

indexedDB.deleteDatabase("databaseName")

в Chrome webkit вы можете использовать webkitGetDatabaseNames который возвращает все имена баз данных

С помощью этого кода Вы можете удалить все локальные indexedDB:

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

удалить все базы данных Chrome IndexedDB запускают следующее в эмуляторе терминала OSX.

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

теперь перезапустите браузер, и все.


поскольку мне очень часто нужно очищать базы данных IndexedDB, я установил псевдоним в своем ~./файл.

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

чтобы удалить IndexedDB из версии Chrome OS X:

1) в настройках, Показать дополнительные настройки затем нажмите кнопку "Настройки содержимого" в разделе "Конфиденциальность".

2) во всплывающем окне" Настройки контента "нажмите кнопку" все куки и данные сайта "в разделе" куки".

3) во всплывающем окне "Cookies и данные сайта" используйте текстовое поле "Search Cookies", чтобы найти домен, который является источником IndexedDB.

4) Нажмите о записи домена в списке.

5) Нажмите на тег "индексированная база данных", указанный в домене.

6) Нажмите кнопку "Удалить" в раскрывающемся списке для индексированной базы данных.


в каталоге Debian GNU / Linux

/ home / [имя пользователя]/.config/google-chrome/по умолчанию/IndexedDB / chrome-xxx.indexeddb.leveldb/

содержит обычные файлы (например):

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


программно удалить базу данных IndexedDB (в отличие от хранилищ и индексов) невозможно.

как вручную, этот пост подробная информация о расположении базы данных в системах Windows для Firefox и Chrome.

обновление: благодаря разработчику Джошуа Беллу Chrome реализует off-spec (но безумно полезный) deleteDatabase метод


инструменты разработчика Chrome теперь имеют возможность удалить все базы данных для приложения в разделе "приложение / очистить хранилище".


напишите этот сегмент кода в console

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


В Chrome 62

  1. открыть Settings
  2. убедитесь, что Advanced переключатель открыт
  3. клик Content Settings
  4. клик Cookies
  5. клик See all cookies and site data
  6. в правом верхнем углу вы увидите search bar, введите домен, который вы ищете (т. е. имя localhost)
  7. Нажмите в элемент списка
  8. удалить элементы

Примечание: представьте, что у вас открыты два браузера Chrome, вы вошли в один и вы запускаете другой из Visual Studio как часть процесса отладки (но вы не вошли в него)... удаление данных IDB в одном не повлияет на другое.


кроме того, используйте веб-приложение в новом окне инкогнито и закройте его, когда закончите: база данных удалена.


In chrome OSX - / пользователи / пользователь / библиотека / поддержка приложений/Google / Chrome / по умолчанию / IndexedDB В Firefox на OSX - пользователи/пользователь/библиотеки/application поддержки/Firefox в/профили/4zaemxcn.по умолчанию / indexedDB

вам просто нужно сделать видимой папку библиотеки. Все файлы хранятся в папках (которые называются доменным именем), и файлы используют хэш, но вы можете выяснить имя базы данных из него. Вы можете удалить данные из IDB, потому что это база данных на стороне клиента, и все данные хранится локально.


в windows вы можете вручную удалить все базы данных IndexedDB, найдя каталог IndexedDB для браузера и удалив его

Для Chrome:

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

вы можете удалить каждую папку, которая очищает indexedDB. Ты можешь начать все сначала.


это, возможно, излишне для вашего конкретного вопроса, но я продолжал заканчивать здесь в моей борьбе за удаление моего idb.

мое решение в конце концов было основано на документация mozilla, но требуется, чтобы я сначала закрыл базу данных.

для меня, в Javascript, код выглядел так:

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