Sha256: ff7b97e0f7b8f3316934d30c5d45f0d1239c7683d36f5512a176ebf5b35451a1

Contents?: true

Size: 1.13 KB

Versions: 11

Compression:

Stored size: 1.13 KB

Contents

class RejigStateField < ActiveRecord::Migration
  class BareContent < ActiveRecord::Base
    include BareMigration
  end
  
  class BareFeedback < ActiveRecord::Base
    include BareMigration
    set_table_name 'feedback'
  end
  
  def self.up
    ActiveRecord::Base.record_timestamps = false
    BareContent.transaction do
      BareFeedback.transaction do
        [BareContent, BareFeedback].each do |klass|
          klass.find(:all).each do |value|
            value[:state] = value.state.to_s.demodulize.underscore
            value.save!
          end
        end
      end
    end    
    change_column :contents, :state, :string
    change_column :feedback, :state, :string
    ActiveRecord::Base.record_timestamps = true
  end

  def self.down
    BareContent.transaction do
      BareFeedback.transaction do
        [BareContent, BareFeedback].each do |klass|
          klass.find(:all).each do |value|
            value[:state] = "ContentState::" + value.state.to_s.classify
            value.save!
          end
        end
      end
    end
    change_column :contents, :state, :text
    change_column :feedback, :state, :string
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
typo-5.5 db/migrate/063_rejig_state_field.rb
typo-5.4.4 db/migrate/063_rejig_state_field.rb
typo-5.4.3 db/migrate/063_rejig_state_field.rb
typo-5.4.2 db/migrate/063_rejig_state_field.rb
typo-5.4.1 db/migrate/063_rejig_state_field.rb
typo-5.4 db/migrate/063_rejig_state_field.rb
typo-5.1.3 db/migrate/063_rejig_state_field.rb
typo-5.1.98 db/migrate/063_rejig_state_field.rb
typo-5.2 db/migrate/063_rejig_state_field.rb
typo-5.2.98 db/migrate/063_rejig_state_field.rb
typo-5.3 db/migrate/063_rejig_state_field.rb