The redis-rb client takes the additional info as an options hash, not as additional arguments.
I'm using redis-rb v3.0.7, which takes only two arguments, see https://github.com/redis/redis-rb/blob/master/lib/redis.rb#L399
I couldn't find the code that it ever took 5 arguments, so I think this code in redis-trib.rb should have never worked.
Fix call to migrate.
That's strange, with v 3.0.7 works well. Is it possible that it depends on the Ruby version used?
I mean, 3.0.3
I see. Support for MIGRATE was added only in 3.0.5¹, before that it relied on method_missing, which just passes all arguments down.
Oh, that's pretty terrible. Thanks @badboy. It means that basically there is no way to patch it if not to use a check for the method existence. Please could you rework the patch so that it uses respond_to? :migrate to switch between the two behavior?
(or I can do myself, I asked you to commit the change since you discovered how it works :-)
redis-trib: call MIGRATE via r.client.call as fix for redis-rb API ch…
See issue #1593.
Thanks to @badboy for suggesting the direct client.call fix.