class IncrementReservedTrustLevelBadgeIds < ActiveRecord::Migration def up execute "ALTER SEQUENCE badges_id_seq START WITH 100" max_badge_id = Badge.order('id DESC').limit(1).first.try(:id) Badge.where('id > 0 AND id <= 100').find_each do |badge| new_id = badge.id + max_badge_id + 100 UserBadge.where(badge_id: badge.id).update_all badge_id: new_id badge.update_column :id, new_id end end def down raise ActiveRecord::IrreversibleMigration end end