Skip to content
Extraits de code Groupes Projets
migrations.rake 2,66 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
    
    
      desc 'copy all hidden share visibilities from share_visibilities to users. Can be run with the site still up.'
      task :copy_hidden_share_visibilities_to_users => [:environment] do
        require File.join(Rails.root, 'lib', 'share_visibility_converter')
        ShareVisibilityConverter.copy_hidden_share_visibilities_to_users
      end
    
    
      desc 'puts out information about old invited users'
    
      task :invitations => [:environment] do
    
        puts "email, invitation_token, :invited_by_id, :invitation_identifier"
        User.where('username is NULL').select([:id, :email, :invitation_token, :invited_by_id, :invitation_identifier]).find_in_batches do |users|
          users.each{|x| puts "#{x.email}, #{x.invitation_token}, #{x.invited_by_id}, #{x.invitation_identifier}" }
    
      desc 'absolutify all existing image references'
      task :absolutify_image_references do
    
        require File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment')
    
          unless photo.remote_photo_path
            # extract root
    
    zhitomirskiyi's avatar
    zhitomirskiyi a validé
            #
            pod = URI::parse(photo.person.url)
    
            pod_url = "#{pod.scheme}://#{pod.host}"
    
    
            if photo.image.url
    
    zhitomirskiyi's avatar
    zhitomirskiyi a validé
              remote_path = "#{photo.image.url}"
    
    zhitomirskiyi's avatar
    zhitomirskiyi a validé
              puts pod_url
    
              remote_path = "#{pod_url}#{photo.remote_photo_path}/#{photo.remote_photo_name}"
            end
    
            # get path/filename
            name_start = remote_path.rindex '/'
            photo.remote_photo_path = "#{remote_path.slice(0, name_start)}/"
            photo.remote_photo_name = remote_path.slice(name_start + 1, remote_path.length)
    
            photo.save!
    
    zhitomirskiyi's avatar
    zhitomirskiyi a validé
    
      task :upload_photos_to_s3 do
    
        require File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment')
    
    zhitomirskiyi's avatar
    zhitomirskiyi a validé
        puts AppConfig[:s3_key]
    
    zhitomirskiyi's avatar
    zhitomirskiyi a validé
        connection = Aws::S3.new( AppConfig[:s3_key], AppConfig[:s3_secret])
        bucket = connection.bucket('joindiaspora')
        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