Sha256: 6e624c4e8bb54b78e11cfcc154e85ecc19d5eb5721518696e9d1e3e09cdc8c92

Contents?: true

Size: 694 Bytes

Versions: 14

Compression:

Stored size: 694 Bytes

Contents

class ChangeSubscribedUsersToSet < ActiveRecord::Migration
  def up
    contacts = connection.select_all %Q{
      SELECT id, subscribed_users
      FROM contacts
      WHERE subscribed_users IS NOT NULL
    }

    puts "Converting #{contacts.size} subscribed_users arrays into sets..." unless contacts.empty?

    # Run as one atomic action.
    ActiveRecord::Base.transaction do
      contacts.each do |contact|
        subscribed_users_set = Set.new(YAML.load(contact["subscribed_users"]))

        connection.execute %Q{
          UPDATE contacts
          SET subscribed_users = '#{subscribed_users_set.to_yaml}'
          WHERE id = #{contact["id"]}
        }
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
fat_free_crm-0.13.6 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.13.5 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.13.4 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.13.3 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.13.2 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.12.3 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.12.2 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.13.1 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.12.1 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.13.0 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.12.0 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.11.4 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.11.3 db/migrate/20120405080727_change_subscribed_users_to_set.rb
fat_free_crm-0.11.2 db/migrate/20120405080727_change_subscribed_users_to_set.rb