Sha256: bdfe7edffc2480d4e5d0a330888b6abe37af4e5beab94b48396e7a048a70140b

Contents?: true

Size: 1.53 KB

Versions: 125

Compression:

Stored size: 1.53 KB

Contents

class AddContentOrgId < ActiveRecord::Migration[5.1]
  class FakeContent < Katello::Model
    self.table_name = 'katello_contents'
    has_many :product_contents, :class_name => 'FakeProductContent', :dependent => :destroy, :foreign_key => 'content_id'
    has_many :products, :through => :product_contents
  end

  class FakeProductContent < Katello::Model
    self.table_name = 'katello_product_contents'
    belongs_to :product, :class_name => 'Katello::Product', :foreign_key => 'product_id', :inverse_of => :product_contents
    belongs_to :content, :class_name => 'FakeContent', :foreign_key => 'content_id', :inverse_of => :product_contents
  end

  class FakeProduct < Katello::Model
    self.table_name = 'katello_products'
  end

  def up
    add_column :katello_contents, :organization_id, :integer, :null => true
    add_foreign_key :katello_contents, :taxonomies, :column => :organization_id, :primary_key => :id

    Katello::Content.where(:organization_id => nil).find_each do |content|
      org_ids = content.products.pluck(:organization_id).uniq
      org_ids.each do |org_id|
        attrs = content.attributes.except('id')
        attrs['organization_id'] = org_id
        new_content = FakeContent.create!(attrs)
        new_content.products = content.products.where('katello_products.organization_id' => org_id)
      end
    end

    FakeContent.where(:organization_id => nil).destroy_all
    change_column :katello_contents, :organization_id, :integer, :null => false
  end

  def down
    fail ActiveRecord::IrreversibleMigration
  end
end

Version data entries

125 entries across 125 versions & 1 rubygems

Version Path
katello-4.3.1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.2.2 db/migrate/20180612164926_add_content_org_id.rb
katello-4.3.0 db/migrate/20180612164926_add_content_org_id.rb
katello-4.3.0.rc4 db/migrate/20180612164926_add_content_org_id.rb
katello-4.3.0.rc3 db/migrate/20180612164926_add_content_org_id.rb
katello-4.3.0.rc2.1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.3.0.rc2 db/migrate/20180612164926_add_content_org_id.rb
katello-4.3.0.rc1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.2.1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.2.0.1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.1.4 db/migrate/20180612164926_add_content_org_id.rb
katello-4.0.3 db/migrate/20180612164926_add_content_org_id.rb
katello-4.2.0.1.rc3 db/migrate/20180612164926_add_content_org_id.rb
katello-3.18.5 db/migrate/20180612164926_add_content_org_id.rb
katello-4.2.0.1.rc2 db/migrate/20180612164926_add_content_org_id.rb
katello-4.2.0.rc2 db/migrate/20180612164926_add_content_org_id.rb
katello-4.1.3 db/migrate/20180612164926_add_content_org_id.rb
katello-4.2.0.rc1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.0.2.1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.1.2.1 db/migrate/20180612164926_add_content_org_id.rb