2017-04-11 3 views
-1

Ich versuche, alle Dokumente aus einer Datenbank zu löschen, aber ich möchte die Ansichten beibehalten. Also habe ich versucht,Kann DesignDocuments nicht zurücksetzen

//First, get all DesignDocument for the current database 
List<DesignDocument> dbDesigns = cloudant.getDesignDocumentManager().list(); 

//Now, we delete the database   
cloudantClient.deleteDB(_DatabaseName); 

      //now we create the database again 
cloudant = cloudantClient.database(_DatabaseName, true); 

//finally, try to add the DesignDocuments back 
      if (dbDesigns != null && dbDesigns.size() > 0) { 
       for (DesignDocument dDoc : dbDesigns) { 
        Response response = cloudant.getDesignDocumentManager().put(dDoc); 
        System.out.println(response); 
       } 
      } 

aber ich bekomme Fehler bei

Response response = cloudant.getDesignDocumentManager().put(dDoc); 


java.lang.IllegalArgumentException: rev should be null 

    at com.cloudant.client.org.lightcouch.internal.CouchDbUtil.assertNull(CouchDbUtil.java:72) 
    at com.cloudant.client.org.lightcouch.CouchDbClient.put(CouchDbClient.java:410) 
    at com.cloudant.client.org.lightcouch.CouchDbClient.put(CouchDbClient.java:394) 
    at com.cloudant.client.org.lightcouch.CouchDatabaseBase.save(CouchDatabaseBase.java:196) 
    at com.cloudant.client.api.Database.save(Database.java:710) 
    at com.cloudant.client.api.DesignDocumentManager.put(DesignDocumentManager.java:122) 

ist es eine andere Möglichkeit, die Ansichten zu bewahren?

+1

Haben Sie versucht, rev auf null einstellen, wie sie in der Fehlermeldung vorgeschlagen? – Flimzy

Antwort

1

Ich vermute, dass der Fehler ausgelöst wird, weil die Dokumentversionseigenschaft (_rev) in dDoc festgelegt ist. Da jedoch ein Dokument mit einer übereinstimmenden ID nicht in der Datenbank gefunden wird, löst die Methode put einen Fehler aus. Versuchen Sie, die Revision Einstellung auf Null die setRevision Methode vor put Aufruf

dDoc.setRevision(null); 
Response response = cloudant.getDesignDocumentManager().put(dDoc); 
+0

perfec! Danke, es hat funktioniert – AbtPst

Verwandte Themen