mirror of https://github.com/fspc/BikeShed-1.git
Jason Denney
11 years ago
6 changed files with 34 additions and 11 deletions
@ -0,0 +1,23 @@ |
|||||
|
class ChangeBikeShopId < ActiveRecord::Migration |
||||
|
# We don't use change_column because we have arbitrary strings we |
||||
|
# need to strip the characters from to make the integer values |
||||
|
def up |
||||
|
bikes = Bike.all |
||||
|
remove_column :bikes, :shop_id |
||||
|
add_column :bikes, :shop_id, :integer, :unique => true |
||||
|
|
||||
|
# deconflict shop ids |
||||
|
bikes.each do |bike| |
||||
|
new_id = bike.shop_id.gsub(/[^\d]/, '').to_i rescue 1 |
||||
|
while bikes.map(&:shop_id).include? new_id |
||||
|
new_id += 1 |
||||
|
end |
||||
|
bike.shop_id = new_id |
||||
|
end |
||||
|
bikes.each(&:save) |
||||
|
end |
||||
|
|
||||
|
def down |
||||
|
change_column :bikes, :shop_id, :string |
||||
|
end |
||||
|
end |
Loading…
Reference in new issue