Official guide on migrations: Active Record Migrations
- db:create creates the database for the current env
- db:create:all creates the databases for all envs
- db:drop drops the database for the current env
- db:drop:all drops the databases for all envs
- db:migrate runs migrations for the current env that have not run yet
- db:migrate:up runs one specific migration
- db:migrate:down rolls back one specific migration
- db:migrate:status shows current migration status
- db:rollback rolls back the last migration
- db:forward advances the current schema version to the next one
- db:seed (only) runs the db/seed.rb file
- db:schema:load loads the schema into the current env's database
-
db:schema:dump dumps the current env's schema (and seems to create the db as well)
-
db:setup runs db:schema:load, db:seed
- db:reset runs db:drop db:setup
- db:migrate:redo runs (db:migrate:down db:migrate:up) or (db:rollback db:migrate) depending on the specified migration
- db:migrate:reset runs db:drop db:create db:migrate
More details can be found in Rails sourcecode. https://github.com/rails/rails/blob/master/activerecord/lib/active_recor...
UPDATED for Rails 5:
db:create - Creates the database for the current RAILS_ENV environment. If RAILS_ENV is not specified it defaults to the development and test databases.
db:create:all - Creates the database for all environments.
db:drop - Drops the database for the current RAILS_ENV environment. If RAILS_ENV is not specified it defaults to the development and test databases.
db:drop:all - Drops the database for all environments.
db:migrate - Runs migrations for the current environment that have not run yet. By default it will run migrations only in the development environment.
db:migrate:redo - Runs db:migrate:down and db:migrate:up or db:migrate:rollback and db:migrate:up depending on the specified migration.
db:migrate:up - Runs the up for the given migration VERSION.
db:migrate:down - Runs the down for the given migration VERSION.
db:migrate:status - Displays the current migration status.
db:migrate:rollback - Rolls back the last migration.
db:version - Prints the current schema version.
db:forward - Pushes the schema to the next version.
db:seed - Runs the db/seeds.rb file.
db:schema:load Recreates the database from the schema.rb file.
db:schema:dump Dumps the current environment’s schema to db/schema.rb.
db:structure:load - Recreates the database from the structure.sql file.
db:structure:dump - Dumps the current environment’s schema to db/structure.sql. (You can specify another file with SCHEMA=db/my_structure.sql)
db:setup Runs db:create, db:schema:load and db:seed.
db:reset Runs db:drop and db:setup. db:migrate:reset - Runs db:drop, db:create and db:migrate.
db:test:prepare - Check for pending migrations and load the test schema. (If you run rake without any arguments it will do this by default.)
db:test:clone - Recreate the test database from the current environment’s database schema.
db:test:clone_structure - Similar to db:test:clone, but it will ensure that your test database has the same structure, including charsets and collations, as your current environment’s database.
db:environment:set - Set the current RAILS_ENV environment in the ar_internal_metadata table. (Used as part of the protected environment check.)
db:check_protected_environments - Checks if a destructive action can be performed in the current RAILS_ENV environment. Used internally when running a destructive action such as db:drop or db:schema:load.
Also refer to https://stackoverflow.com/questions/10301794/difference-between-rake-dbm...