incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mitja Kleider <mi...@kleider.name>
Subject Re: Replication filter ignoring deleted docs or changed values
Date Sun, 10 Jul 2011 08:33:36 GMT
On Sat, 2011-07-09 at 17:26 -0500, Zachary Zolton wrote:
> Could you change your filter to something like this?
> 
> function(doc) {
>   return doc._deleted || doc.type == 'foo';
> }
> 
> That way you replicate all deleted docs.

That would work, thanks. I tried to avoid replicating millions of
deleted documents together with a few hundred documents passing the
filter.

A solution might be this validate_doc_update function on the target
database:

function(newDoc, oldDoc, userCtx) {
    if (newDoc._deleted === true && !oldDoc) {
        throw({forbidden: 'do not create deleted docs'});
    }
}

This way all deleted documents will be transmitted, but at least not
written if there is no previous revision.


The problem for changed values remains: when the source database changes
type='foo' to type='bar', the target database keeps the old revision
with type='foo'.


Mitja


Mime
View raw message