Sha256: 2c40e75c4640ab98b298f501c16f6559e199ecf03b3b300b84069c7a3c8afd37

Contents?: true

Size: 1.03 KB

Versions: 8

Compression:

Stored size: 1.03 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
    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
  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

8 entries across 8 versions & 1 rubygems

Version Path
typo-5.0.2 db/migrate/063_rejig_state_field.rb
typo-5.0.1 db/migrate/063_rejig_state_field.rb
typo-5.0.3.98.1 db/migrate/063_rejig_state_field.rb
typo-5.0.3.98 db/migrate/063_rejig_state_field.rb
typo-5.0 db/migrate/063_rejig_state_field.rb
typo-5.1.1 db/migrate/063_rejig_state_field.rb
typo-5.1.2 db/migrate/063_rejig_state_field.rb
typo-5.1 db/migrate/063_rejig_state_field.rb