Sha256: f068844020c43641a611e727e83418c86113829c4a6ecf744f99b4d5ab34d076

Contents?: true

Size: 1 KB

Versions: 8

Compression:

Stored size: 1 KB

Contents

class AddFieldGroupsKlassName < ActiveRecord::Migration[4.2]
  def up
    add_column :field_groups, :klass_name, :string, limit: 32

    # Add a default field group for each model
    %w[Account Campaign Contact Lead Opportunity].each do |entity|
      klass = entity.classify.constantize
      field_group = FieldGroup.new
      field_group.label = 'Custom Fields'
      field_group.klass_name = klass.name
      field_group.save!
      Field.where(field_group_id: nil, klass_name: klass.name).update_all(field_group_id: field_group.id)
    end
    FieldGroup.where(klass_name: nil).update_all('klass_name = (SELECT MAX(klass_name) FROM fields WHERE field_group_id = field_groups.id)')

    remove_column :fields, :klass_name
    Field.reset_column_information
  end

  def down
    add_column :fields, :klass_name, :string, limit: 32
    connection.execute 'UPDATE fields SET klass_name = (SELECT MAX(klass_name) FROM field_groups WHERE field_groups.id = field_group_id)'
    remove_column :field_groups, :klass_name
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fat_free_crm-0.15.2 db/migrate/20111201030535_add_field_groups_klass_name.rb
fat_free_crm-0.16.4 db/migrate/20111201030535_add_field_groups_klass_name.rb
fat_free_crm-0.15.1 db/migrate/20111201030535_add_field_groups_klass_name.rb
fat_free_crm-0.16.3 db/migrate/20111201030535_add_field_groups_klass_name.rb
fat_free_crm-0.16.2 db/migrate/20111201030535_add_field_groups_klass_name.rb
fat_free_crm-0.16.1 db/migrate/20111201030535_add_field_groups_klass_name.rb
fat_free_crm-0.16.0 db/migrate/20111201030535_add_field_groups_klass_name.rb
fat_free_crm-0.15.0 db/migrate/20111201030535_add_field_groups_klass_name.rb