2016-07-23 23 views
9

soru basit ama internet ve pouchdb kaynağı üzerinden kapsamlı bir arama ile bile yerel bir veritabanı olup olmadığını kontrol etmek için bir işlev bulamadım.KeseDB yerel veritabanının mevcut olup olmadığını kontrol edin

Bunun için kullanım durumu, yerel bir veritabanının var olup olmadığını kontrol etmek ve ardından isteğe bağlı olarak başarılı bir giriş yapmaktır.

Saygılarımızla

+0

Hala çözüm yok? – Costa

cevap

5

bir skip_setup seçenek gerçekten yoktur.

the documentation'da belirtildiği gibi, varsayılan olarak, PouchDB veritabanının var olup olmadığını kontrol edecek ve henüz yoksa, oluşturmaya çalışacaktır. Bu ayarı atlamak için bu seçeneği true olarak ayarlayabilirsiniz. akofman işaret

const db = new PouchDb('DB_URL_OR_NAME', { skip_setup: true }); 

db.info() 
    .then(() => { 
    // The database exists. 
    // Do something... 
    }) 
    .catch(e => { 
    // No database found and it was not created. 
    // Do something else... 
    }); 
+0

İlginç. Veritabanını oluşturan skip_setup olmadan info() çalıştım. Kombinasyonu işaretlediğiniz için teşekkürler. ÇALIŞIYOR bir cazibe gibi. – Mythli

+4

Dokümantasyonda, bu seçeneğin sadece uzak veri tabanları için mevcut olduğu ve bu sorunun yerel bir veri tabanı ile ilgili olduğu belirtilmektedir. Maalesef bu seçeneği yerel bir veritabanıyla denedim ve işe yaramıyor. – akofman

+0

@akofman hala bir çözüm mü? – Costa

4

gibi, skip_setup yerel veritabanlarında ile çalışmıyor: Bu seçenekle

veritabanı yoksa örneğin veritabanı bilgileri sorguladığınızda bir hata alırsınız sağladı. Bu yüzden bunu yapmamın tek yolu bir çözümdür - yeni veritabanının boş olup olmadığını ve hemen silindiğini kontrol etmek. Tabii ki bu söz konusu veritabanı var ama boşsa yardımcı değil ...

const testdb = new PouchDB('testdb_name'); 

testdb.info().then(function (details) { 
if (details.doc_count == 0 && details.update_seq == 0) { 
    alert ('database does not exist'); 
    testdb.destroy().then (function() {console.log('test db removed');}); 
} 
else alert ('database exists'); 
}) 
.catch(function (err) { 
    console.log('error: ' + err); 
return; 
}); 
İlgili konular