2014-09-30 1 views
1

단위 테스트 중에 동일한 이름 ('테스트')으로 PouchDB 데이터베이스를 반복적으로 만들고 삭제하려고합니다. 그러나 적어도 하나의 문서를 삭제하기 전에 데이터베이스에 추가하면 다음에 오류가 발생합니다.같은 이름의 PouchDB 데이터베이스를 다시 만들 수 없습니다

"Uncaught NotFoundError : 'IDBTransaction'에서 'objectStore'를 실행하지 못했습니다. 개체 저장소를 찾을 수 없습니다. "

는 pouchdb.js에서 발생 : 1950 :

var docStore = transaction.objectStore(DOC_STORE); // PouchDB 3.0.6 

을 그럼 난 색인화를 보면의 DB는하지만 다음과 같은 정보와 존재 : 내가하려고하면 다음

Security origin:http://localhost:8000 
Name:_pouch_Test 
Integer Version:1 
String Version: 

이 DB를 삭제하면 Angular는 'CustomPouchError'를 던집니다. 여기

내 응용 프로그램에서 관련 코드 조각입니다 :

var db = new PouchDB(dbName, function(err, result) { 
    if (!err) { 
     $log.info('Database \'' + dbName + '\' opened'); // Happens when I first create 'Test' 
    } else { 
     $log.info('Database \'' + dbName + '\' failed to open'); // Happens when I try to re-create 'Test' 
    } 
}); 

db.destroy(function (err, info) { 
    if (err) { 
     $log.error(err); 
    } else { 
     $log.info("Database destroyed"); // Happens when I delete 'Test' 
    } 
}); 

하지만 여기에 문서를 추가하기 전에 데이터베이스를 삭제하면 색인화에서 사라지고 나는 다시 만들 수 있습니다.

도움 주셔서 감사합니다.

답변

0

해결 방법을 찾았습니다. destroy 후, "then"함수에서 새로운 PouchDB 객체를 생성하십시오. 다음번에 잘 작동합니다. 예 :

var db = new PouchDB('Xyz'); 

db.destroy().then(function (response) { 
     db = new PouchDB('Xyz'); 
    }); 
관련 문제