Sha256: cf1154cd9b7ab21887f65f2290abf35367ee7d700f0bb2482ff3ecc60b545615

Contents?: true

Size: 1.2 KB

Versions: 27

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

class MakeSortitionsAuthorsPolymorphic < ActiveRecord::Migration[5.2]
  class User < ApplicationRecord
    self.table_name = :decidim_users
    self.inheritance_column = nil # disable the default inheritance

    default_scope { where(type: "Decidim::User") }
  end

  class Sortition < ApplicationRecord
    include Decidim::HasComponent

    self.table_name = :decidim_sortitions_sortitions
  end

  def change
    add_column :decidim_sortitions_sortitions, :decidim_author_type, :string

    Sortition.find_each do |sortition|
      author = User.find_by(id: sortition.decidim_author_id) if sortition.decidim_author_id.present?
      author ||= sortition.organization
      sortition.update!(
        decidim_author_type: author.is_a?(User) ? author.type : "Decidim::Organization",
        decidim_author_id: author.id
      )
    end

    add_index :decidim_sortitions_sortitions,
              [:decidim_author_id, :decidim_author_type],
              name: "index_decidim_sortitions_sortitions_on_decidim_author"
    change_column_null :decidim_sortitions_sortitions, :decidim_author_id, false
    change_column_null :decidim_sortitions_sortitions, :decidim_author_type, false
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
decidim-sortitions-0.30.0.rc3 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.30.0.rc2 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.30.0.rc1 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.29.2 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.28.5 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.29.1 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.28.4 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.27.9 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.29.0 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.28.3 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.27.8 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.29.0.rc4 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.29.0.rc3 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.29.0.rc2 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.29.0.rc1 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.28.2 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.27.7 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.28.1 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.27.6 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
decidim-sortitions-0.26.10 db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb