İndexedDB nasıl silinir?


92

IndexedDB kullanmayı içeren bir projede çalışıyorum. Bu teknolojiyi öğrenmeye başladığım için, yeniden başlayabilmem için indekslenmiş bir DB'yi elle silebilmem gerekiyor.

Firefox'ta bunu yapmanın bir yolunu buldum, ancak Google Chrome'un yolunu bulamıyorum.

Bu klasörün içeriğini silmeyi denedim (Mac kullanıyorum):

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

ancak Chrome hala her yerde DB'ye sahip gibi görünüyor, bu yüzden yeniden başlayamıyorum.

Yanıtlar:


101

Teorik olarak, Chrome'da bir IndexedDB'yi silmek için yapmanız gereken tek şey şudur:

  1. Chrome'da Seçenekler> Gelişmiş Seçenekler> İçerik Ayarları> Tüm çerezler ve Site Verileri seçeneğine gidin> IndexedDB'yi oluşturduğunuz alanı bulun
  2. "X" e basın veya "Dizine Eklenmiş Veritabanı"> Kaldır'ı tıklayın

Windows'ta dosya şurada bulunur:

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

Mac'te şunları yapın:

  1. Chrome'da "Ayarlar" a (veya Chrome menüsünün altında "Tercihler" e) gidin
  2. "Gelişmiş ayarları göster" i tıklayın (sayfanın altında)
  3. "Gizlilik"> "İçerik Ayarları"> "Tüm çerezler ve Site Verileri" seçeneğine gidin> IndexedDB'yi oluşturduğunuz alanı bulun
  4. "X" e basın veya "Dizine Eklenmiş Veritabanı"> Kaldır'ı tıklayın

Mac'te klasör şurada bulunur:

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

Linux'ta klasör şu konumda bulunur:

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

2
OS X için Chrome'da "Seçenekler" menü öğesi veya "Gelişmiş Seçenekler" ile ilgili herhangi bir referans bulunmadığından, bu bazı kişiler için kafa karıştırıcı bir ipucu olabilir.
Mark Caufman

3
OS X'de buraya "Chrome> Tarama Verilerini Temizle ..." yoluyla ulaşabilir, iletişim kutusunu kapatabilir ve ardından "Gelişmiş ayarlar" yerine "Gelişmiş ayarlar" seçeneğine gidebilirsiniz. Bundan sonra ~ yukarıdaki ile aynı.
natevw

56
Konsolda indexedDB.deleteDatabase ("databaseName") çalıştırmanın daha kolay olduğunu düşünüyorum.
user854301

1
OSX Chrome v31 adımında: 1. Ayarlar> Gelişmiş ayarları göster ...> Gizlilik> İçerik ayarları ...> Çerezler> Tüm çerezler ve site verileri ... 2. IP'nizi filtrelemek için arayın. 3. simgesine tıklayın Indexed database. 4. Çıkarın!
Amo Wu

Belki Linux altında Chrome veya belki daha yeni bir sürümdür, ancak deneyimlerime göre oraya ulaşmak için adımlar şunlardır: 1. Ayarlar> Gelişmiş ayarları göster ...> İçerik Ayarları> Tüm çerezler ve site Verileri, oluşturduğunuz alanı bul IndexedDB 2. "X" e basın veya "Indexed Database"> Kaldır
Software Prophets

160

Aşağıdakileri Chrome'da başarıyla çalıştırdım:

indexedDB.deleteDatabase('DB NAME')

14
Bu benim için başarısız olmaya devam etti, sonra önce DB'yi kapatmam gerektiğini fark ettim. Başarı işleyicimde DB'ye (e.target.result) kullanışlı bir referans tutuyorum, böylece üzerinde close () çağrısı yapabilirim. Ancak o zaman deleteDatabase ('DB NAME') çağırabilir. Ayrıca, silme işleminin sonucunu görmek için, krom geliştirici araçları kaynakları sekmesindeyseniz, sağ tıklayıp "indexedDB yenile" seçeneğini kullanmanız gerekecektir.
fullstacklife

chrome uygulaması için ana bilgisayar adı bulunamadı, ancak bu, uygulamayı incelediğinizde çalışır.
khany

29

Alternarive, bunu geliştiriciler konsolunda şu komutu kullanarak yapmaktır:

indexedDB.deleteDatabase("databaseName")

1
Bu en kolay yol. Kaynaklardaki 'IndexedDB'yi sağ tıklamanız ve veritabanının zaplandığını onaylamak için' IndexedDB'yi Yenile'yi seçmeniz yeterlidir.
Velojet

10

Chrome webkit'te webkitGetDatabaseNamestüm veritabanı adlarını döndüren kullanabilirsiniz

Bu kodla, tüm yerel indexedDB'yi silebilirsiniz:

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

5

Tüm Chrome IndexedDB veritabanlarını kaldırmak için OSX terminal emülatöründe aşağıdakileri çalıştırın.

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

Şimdi tarayıcınızı yeniden başlatın ve işte bu kadar.


IndexedDB veritabanlarını çok sık temizlemem gerektiğinden, ~. / Bash_profile dosyamda bir takma ad ayarladım.

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

3

IndexedDB'yi Chrome'un OS X sürümünden silmek için:

1) Tercihler'de, Gelişmiş Ayarları görüntüleyin ve ardından "Gizlilik" bölümü altındaki "İçerik Ayarları" düğmesini tıklayın.

2) "İçerik Ayarları" açılır penceresinde, "Çerezler" bölümünün altındaki "Tüm Çerezler ve Site Verileri" düğmesini tıklayın.

3) "Çerezler ve site verileri" açılır penceresinde, IndexedDB'nin kaynağı olan etki alanını aramak için "Çerezleri Ara" metin kutusunu kullanın.

4) Listedeki alan girişine tıklayın.

5) Alan adı altında listelenen "indekslenmiş veritabanı" etiketine tıklayın.

6) İndekslenmiş veritabanı için açılır ayrıntıdaki "Kaldır" butonuna tıklayın.


2

Debian GNU / Linux dizininde

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

normal dosyalar içerir (örneğin):

000003.log, GÜNCEL, KİLİT, GÜNLÜK, MANIFEST-000002


2

IndexedDB veritabanını (depolar ve dizinler aksine) programlı olarak silmek mümkün değildir.

Manuel geçici çözümlere gelince, bu gönderi , Firefox ve Chrome için Windows sistemlerinde veritabanının konumunu ayrıntılı olarak açıklamaktadır.

Güncelleme: Geliştirici Joshua Bell sayesinde, Chrome nesneye özel olmayan (ama delice yararlı) bir deleteDatabaseyöntem uygular window.indexedDB. İşte bu yamayı indiren crbug . Ayrıca, IE'nin daha yeni sürümlerinde, veritabanlarını bir ayarlar paneli aracılığıyla silebilirsiniz .


2

bu kod segmentini konsola yaz

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


2

Chrome Geliştirici araçları artık "Uygulama / Depolamayı Temizle" altında bir uygulamanın tüm veritabanlarını silme seçeneğine sahip.


2

Chrome -> Denetleyici Penceresi -> Uygulama -> soldaki menüye bakın -> Depolama -> IndexedDB


1

@ Judson'ın cevabını @ fullstacklife'ın yorumuna dayanarak tamamlamak için; IndexedDB'yi javascript kullanarak Chrome'da silmek için şunları yapmalısınız:

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

Alternatif olarak, web uygulamanızı yeni bir gizli pencerede kullanın ve işiniz bittiğinde kapatın: veritabanı silindi.


0

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

Kitaplık klasörünü görünür yapmanız yeterlidir. Tüm dosyalar (alan adı olarak adlandırılan) klasörlerde saklanır ve dosyalar karma kullanır, ancak veritabanının adını buradan anlayabilirsiniz. IDB'den verileri silebilirsiniz çünkü bu bir istemci tarafı veritabanıdır ve tüm veriler yerel olarak depolanır.


0

Windows'ta, tarayıcının IndexedDB dizinini bularak ve silerek tüm IndexedDB veritabanlarını manuel olarak silebilirsiniz.

Chrome için:

C: \ Kullanıcılar \ kullanıcı-adı \ AppData \ Local \ Google \ Chrome \ Kullanıcı Verileri \ Profil 1 \ IndexedDB

IndexedDB'yi temizleyen her klasörü silebilirsiniz. Şimdi baştan başlayabilirsiniz.


0

Bu, özel sorunuz için aşırı olabilir, ancak idb'imi silme mücadelemi burada bitirdim.

Sonunda benim çözümüm mozilla'nın belgelerine dayanıyordu , ancak önce veritabanını kapatmam gerekiyordu.

Benim için Javascript'te kod şuna benziyordu:

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

Chrome'da indexedDB'den kurtulmam gerekiyordu. Bu yüzden MasterSeeker kullanarak bilgisayarımda "e-posta asistanı" denen bu berbat şeyi aradım. Chrome'da DB indekslenmiş bir grup klasörde bulunan şeyi buldum. O dosyaları silmem çok kolay görünüyordu. Nasıl olduğuna baktım ve buraya geldim. Windows 10 bilgisayarımla krom ayarlarına gittim. Sadece tarama verilerini temizlemeye çalışmak için bir şans verdim. Presto - o korkunç "e-posta asistanı" crapola da dahil olmak üzere tüm bu dosyalar indexedDB'den kayboldu. Şimdi indexedDB klasörüne baktığımda gördüğüm tek şey https_mail.google.com_0.indexeddb.leveldb - rahatsız edici olmayan güvenli bir şey gibi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.