Ruby on rails добавить столбец после определенного имени столбца

Я попытался добавить столбец в таблицу после определенного столбца в таблице. Вот что я сделал:

rails generate migration add_reaction_id_to_patient_allergies reaction_id: integer :after => 'patient_id'

Вот как выглядит мой файл миграции:

class AddReactionIdToPatientAllergies < ActiveRecord::Migration
  def change
    add_column :patient_allergies, :reaction_id, :string
    add_column :patient_allergies, :integer, :string
    add_column :patient_allergies, :, :after
    add_column :patient_allergies, :=, :string
  end
end

Я не думаю, что команда прошла хорошо. Я вижу в этом файле '='. Я не думаю, что это должно быть там. Может кто-нибудь сказать мне, если я пропустил что-нибудь?

Если да, то как мне отменить выше?

Ответ 1

Я сомневаюсь, что это разрешило вам фактически rake db:migrate эту миграцию, поэтому вам не нужно откатываться. Просто снимите нижнюю тройку add_column и замените верхнюю на

add_column :patient_allergies, :reaction_id, :integer, after: :patient_id

и для переноса должно быть хорошо. Для справок в будущем здесь должна быть следующая команда:

rails generate migration add_reaction_id_to_patient_allergies reaction_id:integer

Пробел перед integer заставил генератора думать, что это новый столбец. К сожалению, вы не можете использовать синтаксис Ruby (a => b) в командной строке.