Use a MigrationRunner to iterate over all unmigrated users
This commit is contained in:
parent
74428408b1
commit
41baecbf35
@ -129,15 +129,45 @@ class Migrator
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
username = ARGV[0]
|
class MigrationRunner
|
||||||
|
|
||||||
|
attr_accessor :environment, :settings
|
||||||
|
|
||||||
|
def initialize
|
||||||
|
@environment = ENV["ENVIRONMENT"] || "staging"
|
||||||
|
@settings = YAML.load(File.read('config.yml'))[@environment]
|
||||||
|
end
|
||||||
|
|
||||||
|
def migrate
|
||||||
|
while username = pick_unmigrated_user
|
||||||
|
migrator = Migrator.new username
|
||||||
|
migrator.migrate
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def unmigrated_users
|
||||||
|
redis.hgetall("rs:container_migration").select { |_, value|
|
||||||
|
value == "not_started"
|
||||||
|
}.keys
|
||||||
|
end
|
||||||
|
|
||||||
|
def pick_unmigrated_user
|
||||||
|
unmigrated_users.sample # pick a random user from list
|
||||||
|
end
|
||||||
|
|
||||||
|
def redis
|
||||||
|
@redis ||= Redis.new(@settings["redis"].symbolize_keys)
|
||||||
|
end
|
||||||
|
|
||||||
unless username
|
|
||||||
puts "No username given."
|
|
||||||
puts "Usage:"
|
|
||||||
puts "ENVIRONMENT=staging ./migrate_to_single_container.rb <username>"
|
|
||||||
exit 1
|
|
||||||
end
|
end
|
||||||
|
|
||||||
migrator = Migrator.new username
|
username = ARGV[0]
|
||||||
migrator.migrate
|
|
||||||
|
if username
|
||||||
|
migrator = Migrator.new username
|
||||||
|
migrator.migrate
|
||||||
|
else
|
||||||
|
runner = MigrationRunner.new
|
||||||
|
runner.migrate
|
||||||
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user