class ChangeColumns < ActiveRecord::Migration def self.up [:mods, :servers, :repositories].each do |t| change_column(t, :id, :string, :limit => 36, :null => false, :primary => true) end [[:mods_servers, [:server_id, :mod_id]], [:mods_sixconfigs, :mod_id], [:servers_sixconfigs, :server_id]].each do |e| bla_up(e) end drop_table :mods_repositories drop_table :repositories_servers end def self.down [:mods, :servers, :repositories].each do |t| change_column(t, :id, :integer) end [[:mods_servers, [:server_id, :mod_id]], [:mods_sixconfigs, :mod_id], [:servers_sixconfigs, :server_id]].each do |e| bla_down(e) end end def self.bla_up(e) t = e[0] case e[1] when Array e[1].each do |f| change_column(t, f, :string, :limit => 36, :null => false, :primary => true) end when Symbol change_column(t, e[1], :string, :limit => 36, :null => false, :primary => true) end end def self.bla_down(e) t = e[0] case e[1] when Array e[1].each do |f| change_column(t, f, :integer, :primary => true) end when Symbol change_column(t, e[1], :integer, :primary => true) end end end