Bagaimana cara menghapus indexedDB?

92

Saya sedang mengerjakan proyek yang melibatkan penggunaan IndexedDB. Saat saya mulai mengetahui teknologi ini, saya harus dapat menghapus indexedDB secara manual sehingga saya dapat memulai kembali.

Saya menemukan cara untuk melakukannya di Firefox, tetapi saya tidak dapat menemukan cara untuk Google Chrome.

Saya mencoba menghapus konten folder ini (saya menggunakan Mac):

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

tetapi tampaknya Chrome masih memiliki DB di mana saja jadi saya tidak dapat memulai kembali.

PaquitoSoft
sumber

Jawaban:

101

Secara teori, yang perlu Anda lakukan untuk menghapus IndexedDB di Chrome adalah:

  1. Di Chrome, buka Opsi> Di Balik Terpal> Setelan Konten> Semua cookie dan Data Situs> temukan domain tempat Anda membuat IndexedDB
  2. Tekan "X" atau klik "Basis Data Terindeks"> Hapus

Di Windows, file tersebut terletak di sini:

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

Di Mac, lakukan hal berikut:

  1. Di Chrome, buka "Pengaturan" (atau "Preferensi" di bawah menu Chrome)
  2. Klik "tampilkan setelan lanjutan" (di bagian bawah halaman)
  3. Buka "Privasi"> "Pengaturan Konten"> "Semua cookie dan Data Situs"> temukan domain tempat Anda membuat IndexedDB
  4. Tekan "X" atau klik "Basis Data Terindeks"> Hapus

Di Mac, foldernya terletak di sini:

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

Di Linux, folder tersebut terletak di:

/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/
Todd Moses
sumber
2
Chrome untuk OS X tidak memiliki item menu "Opsi" atau referensi apa pun ke "Di Balik Terpal", jadi ini mungkin petunjuk yang membingungkan bagi sebagian orang.
Mark Caufman
3
Di OS X, Anda dapat membukanya melalui "Chrome> Hapus Data Penjelajahan ...", tutup dialog, lalu buka "Setelan lanjutan" alih-alih "Di Balik Terpal". Setelah itu ~ sama seperti di atas.
natevw
56
Saya pikir lebih mudah untuk menjalankan indexedDB.deleteDatabase ("databaseName") di konsol.
pengguna854301
1
Pada OSX Chrome v31 langkah: 1. Pengaturan> Tampilkan pengaturan lanjutan ...> Privasi> Pengaturan konten ...> Cookie> Semua cookie dan data situs ... 2. Cari untuk memfilter IP Anda. 3. Klik Indexed database. 4. Hapus itu!
Amo Wu
Mungkin itu Chrome di Linux atau mungkin itu versi yang lebih baru, tetapi berikut adalah langkah-langkah untuk mencapainya dalam pengalaman saya: 1. Pengaturan> Tampilkan pengaturan lanjutan ...> Pengaturan Konten> Semua cookie dan data situs temukan domain tempat Anda membuat IndexedDB 2. Tekan "X" atau klik "Database Terindeks"> Hapus
Software Prophets
160

Saya telah berhasil menjalankan yang berikut ini di Chrome:

indexedDB.deleteDatabase('DB NAME')
Judson
sumber
14
Ini terus gagal buat saya, kemudian saya sadar saya harus menutup DB dulu. Dalam penangan sukses saya, saya menyimpan referensi praktis ke DB (e.target.result) sehingga saya dapat memanggil close () di atasnya. Hanya dengan demikian dapat memanggil deleteDatabase ('DB NAME'). Anda juga perlu mengklik kanan dan menggunakan 'refresh indexedDB' jika Anda berada di tab sumber daya alat pengembang chrome untuk melihat hasil penghapusan.
fullstacklife
tidak dapat menemukan nama host untuk aplikasi chrome tetapi ini berfungsi saat Anda memeriksa aplikasi.
khany
29

Alternatifnya adalah melakukannya di konsol pengembang, menggunakan perintah ini:

indexedDB.deleteDatabase("databaseName")
pengguna854301
sumber
1
Ini cara termudah. Anda hanya perlu mengklik kanan pada 'IndexedDB' di Resources dan memilih 'Refresh IndexedDB' untuk mengonfirmasi bahwa database telah diubah.
Velojet
10

Di webkit Chrome Anda dapat menggunakan webkitGetDatabaseNamesyang mengembalikan semua nama database

Dengan kode ini, Anda dapat menghapus semua indexedDB lokal:

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

Untuk menghapus semua database Chrome IndexedDB, jalankan perintah berikut di emulator terminal OSX.

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

Sekarang restart browser Anda dan hanya itu.


Karena saya perlu membersihkan database IndexedDB sangat sering, saya telah menyiapkan alias di ~. / Bash_profile saya.

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

Untuk menghapus IndexedDB dari Chrome versi OS X:

1) Di Preferensi, tunjukkan Pengaturan Lanjutan, lalu klik tombol "Pengaturan Konten" di bawah bagian "Privasi".

2) Dalam popup "Pengaturan Konten", klik tombol "Semua Cookie dan Data Situs" di bawah bagian "Cookie".

3) Di munculan "Cookie dan data situs", gunakan kotak teks "Cookie Pencarian" untuk mencari domain yang merupakan sumber IndexedDB.

4) Klik pada entri domain dalam daftar.

5) Klik pada tag "database yang diindeks" yang terdaftar di bawah domain.

6) Klik tombol "Hapus" di detail drop-down untuk database yang diindeks.

Mark Caufman
sumber
2

Di direktori Debian GNU / Linux

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

berisi file biasa (misalnya):

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

Alexander Lubyagin
sumber
2

Tidak mungkin menghapus database IndexedDB (sebagai lawan dari penyimpanan dan indeks) secara terprogram.

Adapun solusi manual, posting ini merinci lokasi database pada sistem Windows untuk Firefox dan Chrome.

Pembaruan: Berkat pengembang Joshua Bell, Chrome mengimplementasikan metode off-spec (tapi sangat berguna) deleteDatabasepada window.indexedDBobjek. Inilah crbug yang mendaratkan tambalan ini. Selain itu, di versi IE yang lebih baru, Anda dapat menghapus database melalui panel pengaturan .

buley
sumber
2

tulis segmen kode ini di konsol

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

isambitd
sumber
2

Alat Pengembang Chrome sekarang memiliki opsi untuk menghapus semua database untuk aplikasi, di bawah "Aplikasi / Hapus Penyimpanan".

Aur Saraf
sumber
2

Chrome -> Inspector Window -> Application -> lihat menu sebelah kiri -> Storage -> IndexedDB

patrick
sumber
1

Untuk melengkapi jawaban @ Judson, berdasarkan komentar @ fullstacklife; untuk menghapus IndexedDB di chrome menggunakan javascript Anda harus:

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");
    };
Komunitas Ans
sumber
0

Atau, gunakan aplikasi web Anda di jendela penyamaran baru, dan tutup setelah selesai: database dihapus.

watsoup.dll
sumber
0

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

Anda hanya perlu menampilkan folder perpustakaan. Semua file disimpan dalam folder (yang disebut sebagai nama domain) dan file menggunakan hash, tetapi Anda dapat mengetahui nama database darinya. Anda dapat menghapus data dari IDB karena ini adalah database sisi klien dan semua data disimpan secara lokal.

Stefan
sumber
0

Di windows, Anda dapat secara manual menghapus seluruh database IndexedDB dengan mencari direktori IndexedDB untuk browser dan menghapusnya.

Untuk Chrome:

C: \ Users \ nama-pengguna \ AppData \ Local \ Google \ Chrome \ Data Pengguna \ Profil 1 \ IndexedDB

Anda dapat menghapus setiap folder yang membersihkan indexedDB. Anda dapat memulai kembali sekarang.

Naveen santhosh
sumber
0

Ini mungkin berlebihan untuk pertanyaan spesifik Anda, tetapi saya terus berakhir di sini dalam perjuangan saya untuk menghapus idb saya.

Solusi saya pada akhirnya didasarkan pada dokumentasi mozilla , tetapi mengharuskan saya menutup database terlebih dahulu.

Bagi saya, dalam Javascript, kodenya terlihat seperti ini:

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

Saya perlu menyingkirkan indexedDB di Chrome. Jadi saya mencari hal buruk yang disebut "asisten email" di komputer saya menggunakan MasterSeeker. Menemukan hal itu di banyak folder yang diindeksDB di Chrome. Sepertinya terlalu mudah untuk menghapus file-file itu. Saya mencari tahu caranya, dan berakhir di sini. Saya pergi ke pengaturan chrome dengan PC Windows 10 saya. Saya hanya mencobanya untuk mencoba menghapus data penjelajahan. Presto - semua file itu menghilang dari indexedDB, termasuk crapola "asisten email" yang ditakuti itu. Sekarang ketika saya melihat di folder indexedDB semua yang saya lihat yang muncul kembali adalah https_mail.google.com_0.indexeddb.leveldb - yang terlihat seperti hal yang aman dan tidak mengganggu.

Sheila Bliss
sumber