Как удалить indexedDB?


92

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

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

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

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

но кажется, что у Chrome все еще есть БД, поэтому я не могу начать все сначала.

Ответы:


101

Теоретически все, что вам нужно сделать для удаления 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/

2
В Chrome для OS X нет пункта меню «Параметры» или какой-либо ссылки на «Под капотом», так что это может сбить с толку некоторых людей.
— Марк Кауфман

3
В OS X вы можете попасть туда через «Chrome> Очистить данные просмотров ...», закрыть диалоговое окно и затем перейти к «Расширенным настройкам» вместо «Под капотом». После этого ~ то же, что и выше.
— natevw

56
Я думаю, что проще запустить indexedDB.deleteDatabase ("databaseName") в консоли.
— user854301

1
В OSX Chrome v31 шаг: 1. Настройки> Показать дополнительные настройки ...> Конфиденциальность> Настройки содержимого ...> Файлы cookie> Все файлы cookie и данные сайта ... 2. Выполните поиск для фильтрации вашего IP-адреса. 3. Щелкните Indexed database. 4. Удалите это!
— Амо Ву,

Может быть, это Chrome под Linux или, может быть, это более новая версия, но я знаю, как это сделать: 1. Настройки> Показать дополнительные настройки ...> Настройки контента> Все файлы cookie и данные сайта найти домен, в котором вы создали IndexedDB 2. Нажмите «X» или нажмите «Индексированная база данных»> «Удалить»
— Software Prophets

160

Мне удалось запустить в Chrome следующее:

indexedDB.deleteDatabase('DB NAME')

14
Это продолжало у меня сбой, затем я понял, что сначала нужно закрыть БД. В моем обработчике успеха я храню удобную ссылку на БД (e.target.result), чтобы я мог вызвать для нее close (). Только после этого можно вызвать deleteDatabase («ИМЯ БД»). Вам также нужно будет щелкнуть правой кнопкой мыши и использовать «обновить indexedDB», если вы находитесь на вкладке ресурсов инструментов chrome dev, чтобы увидеть результат удаления.
— fullstacklife

не удалось найти имя хоста для приложения Chrome, но это работает, когда вы проверяете приложение.
— ханы

29

Другой вариант - сделать это в консоли разработчика с помощью этой команды:

indexedDB.deleteDatabase("databaseName")

1
Это самый простой способ. Вам просто нужно щелкнуть правой кнопкой мыши «IndexedDB» в разделе «Ресурсы» и выбрать «Обновить IndexedDB», чтобы подтвердить, что база данных была заблокирована.
— Велоджет

10

В 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]);
}; 

5

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

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

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


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

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

3

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

1) В настройках отобразите «Расширенные настройки», затем нажмите кнопку «Настройки содержимого» в разделе «Конфиденциальность».

2) Во всплывающем окне «Настройки содержимого» нажмите кнопку «Все файлы cookie и данные сайта» в разделе «Файлы cookie».

3) Во всплывающем окне «Файлы cookie и данные сайта» используйте текстовое поле «Поиск файлов cookie», чтобы найти домен, являющийся источником IndexedDB.

4) Щелкните запись домена в списке.

5) Щелкните по тегу «индексированная база данных», указанному под доменом.

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


2

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

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

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

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


2

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

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

Обновление: благодаря разработчику Джошуа Беллу Chrome реализует для объекта некондиционный (но безумно полезный) deleteDatabaseметод window.indexedDB. Вот ошибка, которая установила этот патч. Более того, в более новых версиях IE вы можете удалять базы данных через панель настроек .



2

В инструментах разработчика Chrome теперь есть возможность удалить все базы данных для приложения в разделе «Приложение / Очистить хранилище».


2

Chrome -> Окно инспектора -> Приложение -> посмотрите левое меню -> Хранилище -> IndexedDB


1

Чтобы завершить ответ @Jadson на основе комментария @ fullstacklife; для удаления IndexedDB в chrome с помощью javascript необходимо:

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

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


0

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

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


0

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

Для Chrome:

C: \ Users \ имя-пользователя \ AppData \ Local \ Google \ Chrome \ User Data \ Profile 1 \ IndexedDB

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


0

Возможно, это излишек для вашего конкретного вопроса, но я все время заканчивал здесь, пытаясь удалить свой 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");
};

0

Мне нужно было избавиться от indexedDB в Chrome. Итак, я ищу эту мерзкую штуку под названием «почтовый помощник» на своем компьютере с помощью MasterSeeker. Нашел вещь в кучу папок, которые были проиндексированы DB в Chrome. Мне показалось слишком простым просто удалить эти файлы. Я посмотрел как, и оказался здесь. Я зашел в настройки Chrome на своем ПК с Windows 10. Я просто попробовал очистить данные просмотра. Presto - все эти файлы исчезли из indexedDB, в том числе и этот ужасный «почтовый помощник». Теперь, когда я смотрю в папку indexedDB, все, что я вижу, снова появляется - это https_mail.google.com_0.indexeddb.leveldb, что выглядит как безопасная, не раздражающая вещь.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.