Question

I tried to run:

rake db:migrate VERSION=0

It reverts all migrations except the last one.

Then I tried to run:

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 ?

Was it helpful?

Solution

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?

OTHER TIPS

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!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top