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?
command to create new model and table with columns : rails g model ModelName col_name1:string col_name2:integer col_name3:text ... command to add more columns under existing table: rails g migration AddColumnToModelName col_name4:string col_name5:integer ...
When you already have users and uploads tables and wish to add a new relationship between them. Then, run the migration using rake db:migrate . This migration will take care of adding a new column named user_id to uploads table (referencing id column in users table), PLUS it will also add an index on the new column.
If you happen to have a whole bunch of columns to rename, or something that would have required repeating the table name over and over again: rename_column :table_name, :old_column1, :new_column1 rename_column :table_name, :old_column2, :new_column2 ...
I doubt it allowed you to actually rake 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With