Как удалить 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")
user854301
источник
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]);
}; 
RevoLab
источник
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

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

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

Исамбит
источник
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");
};
Пользователь632716
источник
0

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

Шейла Блисс
источник