Skip to content

Instantly share code, notes, and snippets.

@lelandsmith
Forked from yokolet/gist:2176753
Created February 19, 2014 23:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lelandsmith/9103703 to your computer and use it in GitHub Desktop.
Save lelandsmith/9103703 to your computer and use it in GitHub Desktop.
Existing schema is below:
ActiveRecord::Schema.define(:version => 20120130161449) do
create_table "movies", :force => true do |t|
t.string "title"
t.string "rating"
t.text "description"
t.datetime "release_date"
t.datetime "created_at"
t.datetime "updated_at"
end
end
To add new field "director" to this schema, I created Migration by:
rails g migration AddDirectorToMovie director:string
The name "AddDirectorToMovie" means much. "Add" creates "change" method in Migration, and "ToMovie" indicates the table concerned about is "movies."
So, I got a migration file, db/migrate/20120323210944_add_director_to_movie.rb whose contents is:
class AddDirectorToMovie < ActiveRecord::Migration
def change
add_column :movies, :director, :string
end
end
One last thing to do is:
rake db:migrate
Now, I have an updated schema.rb:
ActiveRecord::Schema.define(:version => 20120323210944) do
create_table "movies", :force => true do |t|
t.string "title"
t.string "rating"
t.text "description"
t.datetime "release_date"
t.datetime "created_at"
t.datetime "updated_at"
t.string "director"
end
end
Also, I could confirm the "director" field was added on Rails console:
1.9.2p290 :012 > Movie.columns.map {|c| c.name}
=> ["id", "title", "rating", "description", "release_date", "created_at", "updated_at", "director"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment