28 lines
627 B
Ruby
28 lines
627 B
Ruby
|
require 'rubygems'
|
||
|
require 'couchrest'
|
||
|
|
||
|
# set the source db and map view
|
||
|
source = CouchRest.new("http://localhost:5984").database('source-db')
|
||
|
source_view = 'mydesign/view-map'
|
||
|
|
||
|
# set the target db
|
||
|
target = CouchRest.new("http://localhost:5984").database('target-db')
|
||
|
|
||
|
|
||
|
pager = CouchRest::Pager.new(source)
|
||
|
|
||
|
# pager will yield once per uniq key in the source view
|
||
|
|
||
|
pager.key_reduce(source_view, 10000) do |key, values|
|
||
|
# create a doc from the key and the values
|
||
|
example_doc = {
|
||
|
:key => key,
|
||
|
:values => values.uniq
|
||
|
}
|
||
|
|
||
|
target.save(example_doc)
|
||
|
|
||
|
# keep us up to date with progress
|
||
|
puts k if (rand > 0.9)
|
||
|
end
|