Implement the schema.rb for updating the database

Hi, guys

I fix the db/schema.rb file, and want to update the database using it .
How i should do. i try ‘rake db:migrate’ but it not works.

thanks for helps.

You should not manually change schema.rb, you should instead write a
migration to change the database design. Running the migration will
update schema.rb.

See the Rails Guide on Migrations for how to do this.

In order to put schema.rb back to what it should be before running the
migrations you can do
rake db:schema:dump
You can alternatively just revert schema.rb using your Version Control
System. If you are not using a VCS then start doing so immediately,
you will not regret it. I prefer git.

I assume you are just getting started with Rails so have a look at all
the Rails Guides and work through some tutorials. Make sure you are
using Rails 3 and that the tutorial is for this version. is good and is free to use online.



Thanks colin, the tutorail is very helpful to me.

But i still have a question, can i design a database schema for migrating once time. I don’t want gonna to create a migration file for some operation to database again and again.
Just creating a schema file for initializing the database at first.

I don't see why you want to write a schema manually rather than just
writing the first migration manually. It is just as easy to write the
inital migration as an initial schema. In fact the syntax is almost
identical. However, if you do want to do that then you can use rake
db:create to create the db from the schema. Note that this is not the
question you asked originally, which was how to update the db from an
updated schema. rake db:create creates a new database rather than
modifying an existing one. A migration will modify an existing data
without destroying existing data.