Sha256: 1a6aa8281a9a4351fbe0a66093a14a79305947d806e85b0a8a918545df922b95

Contents?: true

Size: 1.24 KB

Versions: 50

Compression:

Stored size: 1.24 KB

Contents

class AddAttributeToDorsaleCustomerVaultPeople < ActiveRecord::Migration[5.0]
  class Person < ActiveRecord::Base
    self.table_name = :dorsale_customer_vault_people
  end

  def change
    add_column :dorsale_customer_vault_people, :context, :text
    add_column :dorsale_customer_vault_people, :corporation_id, :integer
    migrate_individuals_context
    migrate_corporations_immatriculation_numbers
  end

  def migrate_individuals_context
    Dorsale::CustomerVault::Individual.all.each do |individual|
      data = JSON.parse(individual.data_before_type_cast)

      individual.update_columns context: data["context"]
      data.delete("context")

      Person.where(id: individual.id).update_all(data: data.to_json)
    end
  end

  def migrate_corporations_immatriculation_numbers
    Dorsale::CustomerVault::Corporation.all.each do |corporation|
      data = JSON.parse(corporation.data_before_type_cast)

      immatriculation_number = "#{data['immatriculation_number_1']} / #{data['immatriculation_number_2']}"
      data.delete("immatriculation_number_1")
      data.delete("immatriculation_number_2")
      data["immatriculation_number"] = immatriculation_number

      Person.where(id: corporation.id).update_all(data: data.to_json)
    end
  end
end

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
dorsale-4.0.0 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.20.0 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.19.1 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.19.0 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.18.0 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.17.0 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.16.0 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.15.0 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.11 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.10 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.9 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.8 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.7 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.6 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.5 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.4 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.3 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.2 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.1 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb
dorsale-3.14.0 db/migrate/20170406122047_add_attribute_to_dorsale_customer_vault_people.rb