Thanks Klaus,

It is somewhat inconvenient way compare to 0.11 single call, but it works!
I still cannot understand why adding a new field to the document with Futon 
does not introduce a conflict but attaching a file does?

Cheers
Nikolai
 


On 13.09.2010, at 00:00, Klaus Trainer wrote:

> You could take all the revs from the _conflicts list, and delete them
> with one _bulk_docs call, e.g.:
> 
> curl -vX POST http://127.0.0.1:5984/foobase/_bulk_docs -H 'Content-Type:
> application/json' -d '{"all_or_nothing": true, "docs":[{"_id":"doc",
> "_rev":"2-818ecad858044ee3bb6017e938e98411", "_deleted":true},
> {"_id":"doc", "_rev":"2-3bf9067dce5f550d9bfcdab1217045e7",
> "_deleted":true}, {"_id":"doc",
> "_rev":"2-13839535feb250d3d8290998b8af17c3", "_deleted":true}]}'
> 
> - Klaus
> 
> 
> On Sun, 2010-09-12 at 23:18 +0200, Nikolai Teofilov wrote:
>> But something changed since 0.11 ...
>> 
>> In my application I have a master server and several slaves. Each slave pull 
>> a document from the master, attach some data and push it back to the master 
>> then this document can be updated from another slave and so on ... and this 
>> works perfectly in 0.11. I was able to delete the document on the master 
>> server with one single delete call. 
>> Now each attachment on the slave will introduce a conflict so if I have 
>> several attachments on some of the slave machines and if I want to delete 
>> after that this document on the master database I have to delete each 
>> document revision for each attachment and repeat this for each slave ... 
>> 
>> Is there a way to delete the document with the whole history with a single 
>> API call?
>> 
>> Thanks
>> Nikolai
>> 
>> 
>> 
>> On 12.09.2010, at 22:36, Klaus Trainer wrote:
>> 
>>>> Correct me if I am wrong but there should be message like after the DELETE 
>>>> operation:
>>>> 
>>>> {"error":"conflict","reason":"Document update conflict."}
>>> 
>>> ...when you do what?
>>> 
>>>> but I get:
>>>> 
>>>> {"ok":true,"id":"doc","rev":"3-9ac5f6d05704bf0b5e427d5b6ce7fc92"}
>>>> 
>>>> Furthermore I don't understand where does the conflict comes in this 
>>>> situation?
>>> 
>>> The point is that when using the _bulk_docs API and "all_or_nothing":
>>> true, documents are written even if the given _rev number doesn't match
>>> the current one. In that case (_rev number doesn't match), you get a new
>>> conflict.
>>> 
>>> - Klaus
>>> 
>>> 
>>> On Sun, 2010-09-12 at 22:19 +0200, Nikolai Teofilov wrote:
>>>> Hi Klaus,
>>>> 
>>>> Correct me if I am wrong but there should be message like after the DELETE 
>>>> operation:
>>>> 
>>>> {"error":"conflict","reason":"Document update conflict."}
>>>> 
>>>> but I get:
>>>> 
>>>> {"ok":true,"id":"doc","rev":"3-9ac5f6d05704bf0b5e427d5b6ce7fc92"}
>>>> 
>>>> Furthermore I don't understand where does the conflict comes in this 
>>>> situation?
>>>> 
>>>> Cheers
>>>> Nikolai
>>>> 
>>>> 
>>>> On 12.09.2010, at 21:27, Klaus Trainer (JIRA) wrote:
>>>> 
>>>>> 
>>>>>  [ 
>>>>> https://issues.apache.org/jira/browse/COUCHDB-885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12908535#action_12908535
>>>>>  ] 
>>>>> 
>>>>> Klaus Trainer commented on COUCHDB-885:
>>>>> ---------------------------------------
>>>>> 
>>>>> Note that the procedure I've previously described will create a conflict:
>>>>> 
>>>>> curl -X GET http://127.0.0.1:5984/foobase/doc?conflicts=true
>>>>> {"_id":"doc","_rev":"3-b06fcd1c1c9e0ec7c480ee8aa467bf3b","foo":"bar","_conflicts":["1-4c6114c65e295552ab1019e2b046b10e"]}
>>>>> 
>>>>>> Delete document with attachment fails after replication.
>>>>>> --------------------------------------------------------
>>>>>> 
>>>>>>              Key: COUCHDB-885
>>>>>>              URL: https://issues.apache.org/jira/browse/COUCHDB-885
>>>>>>          Project: CouchDB
>>>>>>       Issue Type: Bug
>>>>>>       Components: Replication
>>>>>> Affects Versions: 1.0.1
>>>>>>      Environment: Mac OSX, Windows XP, Windows 7
>>>>>>         Reporter: Nikolai Teofilov
>>>>>> 
>>>>>> Step to reproduce the bug:
>>>>>> 1.  Make database "test" on a remote couchdb server that reside on a 
>>>>>> different machine! 
>>>>>> 2.  Create new document:  "http://remote-server:5984/test/doc";
>>>>>> 3.  Create database "test"  on the local couchdb  server.
>>>>>> 4.  Trigger pull replication  http://remote-server:5984/test -> 
>>>>>> http://localhost:5984/test
>>>>>> 5.  Attach a file to the replicated document on the local couchdb server.
>>>>>> 6.  Trigger push replication http://localhost:5984/test  -> 
>>>>>> http://remote-server:5984/test
>>>>>> 7.  Delete the replicated document that contain now the attachment on 
>>>>>> remote database.
>>>>>> 
>>>>>>    This operation will delete the last revision of the document (after 
>>>>>> the replication) but the previous revision of the document (before the 
>>>>>> replication) still exist in the database.
>>>>>> This defect appears only for replications between databases on two 
>>>>>> different couchdb servers, and only for documents that were updated with 
>>>>>> a new attachment.
>>>>> 
>>>>> -- 
>>>>> This message is automatically generated by JIRA.
>>>>> -
>>>>> You can reply to this email to add a comment to the issue online.
>>>>> 
>>>> 
>>> 
>>> 
>> 
> 
> 

Reply via email to