Reputation: 1742
How do you modify a model you've generated using modeling? For example, the model myModel originally had columns a, b and c, but I now want to add column d.
Upvotes: 24
Views: 20345
Reputation: 3706
Rails 3 and above use the following code :
rails generate migration add_fieldname_id_to_tablename fieldname:string
Rails 2
ruby script/generate migration add_fieldname_to_tablename fieldname:string
This no longer works and returns the following error in Rails 3:
ruby: No such file or directory -- script/generate (LoadError)
Upvotes: 25
Reputation: 3017
ruby script/generate migration add_fieldname_to_tablename fieldname:string
this is the shortcut method to do exactly what you want. if you need more control, or if you have a lot of columns to add, Andrew H's answer will work fine too.
Upvotes: 19
Reputation: 1742
The best answer I've found so far is run this from your project root:
ruby script/generate migration add_d_column_to_myModel
Then edit the new migration file located in db/migration to look something like:
def self.up
add_column :myModel, :d, :string
end
def self.down
remove_column :myModel, :d
end
The last step will be to update your views accordingly.
Answer found here
Table functions found here
Upvotes: 13