summaryrefslogtreecommitdiff
path: root/share/www/script
diff options
context:
space:
mode:
authorJan Lehnardt <jan@apache.org>2009-10-11 05:49:19 +0000
committerJan Lehnardt <jan@apache.org>2009-10-11 05:49:19 +0000
commite3610fa481b5c506ca0b69f49a6f350fce8b3399 (patch)
treeb0050828126b4bf2dda4eb1c977630787d7b0f3a /share/www/script
parente3507c9e1bb57986ccffc9324d99bec4d0e4cc58 (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.js5
-rw-r--r--share/www/script/test/replication.js24
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");
};