Sha256: 24d4356b55f1bbe64e2ebeca36a0415e4d6ac8daf4c795eb7c37f06bb401c125

Contents?: true

Size: 1.47 KB

Versions: 65

Compression:

Stored size: 1.47 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', :inverse_of => :product_contents
    belongs_to :content, :class_name => 'FakeContent', :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

65 entries across 65 versions & 1 rubygems

Version Path
katello-4.14.2 db/migrate/20180612164926_add_content_org_id.rb
katello-4.15.0 db/migrate/20180612164926_add_content_org_id.rb
katello-4.15.0.rc2 db/migrate/20180612164926_add_content_org_id.rb
katello-4.15.0.rc1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.14.1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.14.0 db/migrate/20180612164926_add_content_org_id.rb
katello-4.14.0.rc3 db/migrate/20180612164926_add_content_org_id.rb
katello-4.14.0.rc2 db/migrate/20180612164926_add_content_org_id.rb
katello-4.14.0.rc1.1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.14.0.rc1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.13.1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.13.0 db/migrate/20180612164926_add_content_org_id.rb
katello-4.12.1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.13.0.rc1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.12.0 db/migrate/20180612164926_add_content_org_id.rb
katello-4.12.0.rc3 db/migrate/20180612164926_add_content_org_id.rb
katello-4.12.0.rc2 db/migrate/20180612164926_add_content_org_id.rb
katello-4.12.0.rc1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.11.1 db/migrate/20180612164926_add_content_org_id.rb
katello-4.11.0 db/migrate/20180612164926_add_content_org_id.rb