开发者

How to revert all migrations at once in Ruby on Rails 3?

I tried to run:

rake db:migrate VERSION=0

It reverts all migrations except the last one.

Then I tried to r开发者_StackOverflowun:

rake db:migrate:down VERSION=<timestamp_of_last_migration>

but it didn't revert either. Why ?

Is there a command that runs all down methods at once ?


If your database only related to this project, and you are trying to undo everything in your migrations, I'd simply drop the database, and then run rake db:create.

Then you have an empty database ready to go.

Or is there another reason you're trying to run the down scripts?


You could check this list.

Maybe this could help you

rake db:create[:all]: If :all not specified then create the database defined in config/database.yml for the current RAILS_ENV. If :all is specified then create all of the databases defined in config/database.yml.
rake db:fixtures:load: Load fixtures into the current environment's database. Load specific fixtures using FIXTURES=x,y
rake db:migrate [VERSION=n]: Migrate the database through scripts in db/migrate. Target specific version with VERSION=n
rake db:migrate:redo [STEP=n]: (2.0.2) Revert the database by rolling back "STEP" number of VERSIONS and re-applying migrations.
rake db:migrate:reset: (2.0.2) Drop the database, create it and then re-apply all migrations. The considerations outlined in the note to rake db:create apply.
rake db:reset: Drop and re-create database using db/schema.rb. The considerations outlined in the note to rake db:create apply.
rake db:rollback [STEP=N]: (2.0.2) Revert migration 1 or n STEPs back.
rake db:schema:dump: Create a db/schema.rb file that can be portably used against any DB supported by AR
rake db:schema:load: Load a schema.rb file into the database
rake db:sessions:clear: Clear the sessions table
rake db:sessions:create: Creates a sessions table for use with CGI::Session::ActiveRecordStore
rake db:structure:dump: Dump the database structure to a SQL file
rake db:test:clone: Recreate the test database from the current environment's database schema
rake db:test:clone_structure: Recreate the test databases from the development structure
rake db:test:prepare: Prepare the test database and load the schema
rake db:test:purge: Empty the test database


there is another way:

rake db:rollback STEP=100

this will revert last 100 migrations

taken from http://guides.rubyonrails.org/migrations.html#rolling-back


try:

rake db:migrate:down VERSION=<timestamp_of_first_migration>

this will run the self.down for your first migration, essentially wiping everything out. at least, it just did for me!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜