Skip to content
Extraits de code Groupes Projets
migrations.rake 2,01 ko
Newer Older
  • Learn to ignore specific revisions
  • danielgrippi's avatar
    danielgrippi a validé
    # Copyright (c) 2010-2011, Diaspora Inc.  This file is
    
    Sarah Mei's avatar
    Sarah Mei a validé
    # licensed under the Affero General Public License version 3 or later.  See
    # the COPYRIGHT file.
    
    
    namespace :migrations do
    
    zhitomirskiyi's avatar
    zhitomirskiyi a validé
      task :upload_photos_to_s3 do
    
        require File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment')
    
    Jonne Haß's avatar
    Jonne Haß a validé
        puts AppConfig.environment.s3.key
    
    Jonne Haß's avatar
    Jonne Haß a validé
        connection = Aws::S3.new( AppConfig.environment.s3.key, AppConfig.environment.s3.secret)
        bucket = connection.bucket(AppConfig.environment.s3.bucket)
    
    zhitomirskiyi's avatar
    zhitomirskiyi a validé
        dir_name = File.dirname(__FILE__) + "/../../public/uploads/images/"
    
        count = Dir.foreach(dir_name).count
        current = 0
    
    
    zhitomirskiyi's avatar
    zhitomirskiyi a validé
        Dir.foreach(dir_name){|file_name| puts file_name;
          if file_name != '.' && file_name != '..';
    
            begin
              key = Aws::S3::Key.create(bucket, 'uploads/images/' + file_name);
              key.put(File.open(dir_name+ '/' + file_name).read, 'public-read');
              key.public_link();
              puts "Uploaded #{current} of #{count}"
              current += 1
    
              puts "error #{e} on #{current} (#{file_name}), retrying"
              retry
            end
    
    zhitomirskiyi's avatar
    zhitomirskiyi a validé
        }
    
      CURRENT_QUEUES = %w(urgent high medium low default).freeze
    
      desc "Migrate sidekiq jobs, retries, scheduled and dead jobs from any legacy queue to "\
           "the default queue (retries all dead jobs)"
      task :legacy_queues do
    
        Sidekiq.redis = AppConfig.get_redis_options
    
    
        # Push all retries, scheduled and dead jobs to their queues
        Sidekiq::RetrySet.new.retry_all
        Sidekiq::DeadSet.new.retry_all
        Sidekiq::ScheduledSet.new.reject {|job| CURRENT_QUEUES.include? job.queue }.each(&:add_to_queue)
    
        # Move all jobs from legacy queues to the default queue
        Sidekiq::Queue.all.each do |queue|
          next if CURRENT_QUEUES.include? queue.name
    
          puts "Migrating #{queue.size} jobs from #{queue.name} to default..."
          queue.each do |job|
            job.item["queue"] = "default"
            Sidekiq::Client.push(job.item)
            job.delete
          end
    
          # Delete the queue
          queue.clear