I tried to add a column to a table after a specific column in the table. Here is what I did:
rails generate migration add_reaction_id_to_patient_allergies reaction_id: integer :after => 'patient_id'
Here is what my migration file looks like:
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
I dont think the command went well. I see an '=' in the above file. I do not think it should be there. Can someone tell me if I missed anything?
If so , how do I undo the above?
I doubt it allowed you to actually rails db:migrate
this migration, so you shouldn't have to roll back. Just remove the bottom three add_column
s and replace the top one with
add_column :patient_allergies, :reaction_id, :integer, after: :patient_id
and it should be fine to migrate. For future reference, here's what that command you entered should look like:
rails generate migration add_reaction_id_to_patient_allergies reaction_id:integer
The space before integer
made the generator think it was a new column. Sadly you can't use Ruby syntax (a => b
) on the command line either.