035_boolify_content_allow_foo.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:2k
源码类别:

Ajax

开发平台:

Others

  1. class Bare35Content < ActiveRecord::Base
  2.   include BareMigration
  3. end
  4. class BoolifyContentAllowFoo < ActiveRecord::Migration
  5.   def self.up
  6.     STDERR.puts "Boolifying contents.allow_(comments|pings)"
  7.     modify_tables_and_update([:rename_column, Bare35Content, :allow_pings,    :old_ap],
  8.                              [:add_column,    Bare35Content, :allow_pings,    :boolean],
  9.                              [:rename_column, Bare35Content, :allow_comments, :old_ac],
  10.                              [:add_column,    Bare35Content, :allow_comments, :boolean]) do |c|
  11.       unless $schema_generator
  12.         c.allow_pings    = !c.old_ap.to_i.zero? ? true : false unless c.old_ap.nil?
  13.         c.allow_comments = !c.old_ac.to_i.zero? ? true : false unless c.old_ac.nil?
  14.       end
  15.     end
  16.     remove_column :contents, :old_ap
  17.     remove_column :contents, :old_ac
  18.   end
  19.   def self.down
  20.     STDERR.puts "Un-Boolifying contents.allow_(comments|pings)"
  21.     modify_tables_and_update([:rename_column, Bare35Content, :allow_pings,    :old_ap],
  22.                              [:add_column,    Bare35Content, :allow_pings,    :integer],
  23.                              [:rename_column, Bare35Content, :allow_comments, :old_ac],
  24.                              [:add_column,    Bare35Content, :allow_comments, :integer]) do |c|
  25.       unless $schema_generator
  26.         c.allow_pings    = c.old_ap ? 1 : 0 unless c.old_ap.nil?
  27.         c.allow_comments = c.old_ac ? 1 : 0 unless c.old_ac.nil?
  28.       end
  29.     end
  30.     remove_column :contents, :old_ap
  31.     remove_column :contents, :old_ac
  32.   end
  33. end