テーブル内の特定の列の後に、テーブルに列を追加しようとしました。これが私がしたことです:
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
コマンドがうまくいったとは思わない。上記のファイルに「=」があります。そこにあるべきではないと思います。私が何かを逃したかどうか誰かに教えてもらえますか?
もしそうなら、どうすれば上記を元に戻すことができますか?
実際にrake db:migrate
この移行なので、ロールバックする必要はありません。下の3つを削除するだけですadd_column
sそして一番上のものをに置き換えます
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
)コマンドラインでも。