diff options
author | David Thomson <david@ludometrics.com> | 2015-10-14 06:56:14 +0100 |
---|---|---|
committer | David Thomson <david@ludometrics.com> | 2015-10-14 06:56:14 +0100 |
commit | 03d0de7cdffb12edf1dae9c46d8c49d4fd06c755 (patch) | |
tree | d06622e4d7d9220b10dc429cef5d6d9e606cc6c9 /src/redis-trib.rb | |
parent | c372a595201451721ddc76bc627e169c9b465c20 (diff) | |
download | redis-03d0de7cdffb12edf1dae9c46d8c49d4fd06c755.tar.gz |
Update import command to optionally use copy and replace parameters
Diffstat (limited to 'src/redis-trib.rb')
-rwxr-xr-x | src/redis-trib.rb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/redis-trib.rb b/src/redis-trib.rb index 8e07aa22a..577cf150d 100755 --- a/src/redis-trib.rb +++ b/src/redis-trib.rb @@ -1149,7 +1149,8 @@ class RedisTrib def import_cluster_cmd(argv,opt) source_addr = opt['from'] xputs ">>> Importing data from #{source_addr} to cluster #{argv[1]}" - + use_copy = opt['copy'] + use_replace = opt['replace'] # Check the existing cluster. load_cluster_info_from_node(argv[0]) check_cluster @@ -1184,7 +1185,10 @@ class RedisTrib print "Migrating #{k} to #{target}: " STDOUT.flush begin - source.client.call(["migrate",target.info[:host],target.info[:port],k,0,15000]) + cmd = ["migrate",target.info[:host],target.info[:port],k,0,15000] + cmd << :copy if use_copy + cmd << :replace if use_replace + source.client.call(cmd) rescue => e puts e else @@ -1344,7 +1348,7 @@ COMMANDS={ ALLOWED_OPTIONS={ "create" => {"replicas" => true}, "add-node" => {"slave" => false, "master-id" => true}, - "import" => {"from" => :required}, + "import" => {"from" => :required, "copy" => false, "replace" => false}, "reshard" => {"from" => true, "to" => true, "slots" => true, "yes" => false} } |