diff options
author | Jan Lehnardt <jan@apache.org> | 2009-10-11 05:49:19 +0000 |
---|---|---|
committer | Jan Lehnardt <jan@apache.org> | 2009-10-11 05:49:19 +0000 |
commit | e3610fa481b5c506ca0b69f49a6f350fce8b3399 (patch) | |
tree | b0050828126b4bf2dda4eb1c977630787d7b0f3a /share/www/script | |
parent | e3507c9e1bb57986ccffc9324d99bec4d0e4cc58 (diff) |
add create_target:true option to _replicate that creates the target database
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@824029 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'share/www/script')
-rw-r--r-- | share/www/script/couch.js | 5 | ||||
-rw-r--r-- | share/www/script/test/replication.js | 24 |
2 files changed, 28 insertions, 1 deletions
diff --git a/share/www/script/couch.js b/share/www/script/couch.js index f6c1199a..86465c95 100644 --- a/share/www/script/couch.js +++ b/share/www/script/couch.js @@ -387,9 +387,12 @@ CouchDB.getVersion = function() { CouchDB.replicate = function(source, target, rep_options) { rep_options = rep_options || {}; var headers = rep_options.headers || {}; + var body = rep_options.body || {}; + body.source = source; + body.target = target; CouchDB.last_req = CouchDB.request("POST", "/_replicate", { headers: headers, - body: JSON.stringify({source: source, target: target}) + body: JSON.stringify(body) }); CouchDB.maybeThrowError(CouchDB.last_req); return JSON.parse(CouchDB.last_req.responseText); diff --git a/share/www/script/test/replication.js b/share/www/script/test/replication.js index 210ffa2c..78678937 100644 --- a/share/www/script/test/replication.js +++ b/share/www/script/test/replication.js @@ -277,4 +277,28 @@ couchTests.replication = function(debug) { T(result2.no_changes == true); T(result2.session_id == result.session_id); } + + // test optional automatic creation of the target db + + var dbA = new CouchDB("test_suite_db_a", {"X-Couch-Full-Commit":"false"}); + var dbB = new CouchDB("test_suite_db_b", {"X-Couch-Full-Commit":"false"}); + + dbA.deleteDb(); + dbA.createDb(); + dbB.deleteDb(); + + // local + CouchDB.replicate(dbA.name, "test_suite_db_b", { + body: {"create_target": true} + }); + TEquals("test_suite_db_b", dbB.info().db_name, + "Target database should exist"); + + // remote + dbB.deleteDb(); + CouchDB.replicate(dbA.name, "http://" + CouchDB.host + "/test_suite_db_b", { + body: {"create_target": true} + }); + TEquals("test_suite_db_b", dbB.info().db_name, + "Target database should exist"); }; |