Here are some handy rake tasks you may not be aware of and a quick description of what they do:
Database tasks
rake db:create
– Will create a database to the settings defined in database.yml for the current environment.
rake db:create:all
– Will create all of the databases defined in database.yml
rake db:drop
– Will drop the database for the current environment.
rake db:drop:all
– Will drop all of the databases defined in database.yml.
rake db:migrate:redo
– Rolls back one migration and then re-runs the migration again (handy if you wan’t to make a quick change to the last migration).
rake db:migrate:reset
– Drops all tables from the database and then rebuilds them using your migrations. This will delete all the entries from your current environment’s database.
rake db:reset
– Drops all tables from the current environment’s database and then rebuilds them using schema.rb.
rake db:rollback
– Rolls the database schema back to the previous version.
rake db:sessions:clear
– Clears the sessions table if you’re using ActiveRecord::SessionStore
rake db:structure:dump
– Dumps the current database structure to a .sql file into app/db/
(really handy for rebuilding your database elsewhere).
rake db:test:load
– Recreates the test database from the current schema.rb
RDoc tasks
rake doc:app
– Builds RDoc html files for your entire app in myapp/doc
rake doc:clobber_app
– Removes the myapp/doc directory and all of its contents.
Gem tasks
rake gems
– Lists all of the gems your app depends on (both the gems you have specified and their dependencies). The key here is simple: R = Rails framework gems, I = gems installed on the system and F = gems frozen in vendor/gems.
rake gems:install
– Installs any gems your app requires that are not currently installed on the system
rake gems:unpack:dependencies
– Unpacks all of the gems your app requires and their dependencies to your vendor/ folder. See tip #9 for more info.
Annotation tasks
(read this tip for more info on annotations)
rake notes
– Lists all of your annotations
rake notes:todo
– Lists all of your TODO annotations
rake notes:fixme
– Lists all of your FIXME annotations
rake notes:optimize
– Lists all of your OPTIMIZE annotations
rake notes:custom
– Lists all of your custom annotations. You need to include the ANNOTATION
variable with the name of your custom note type.
Rails tasks
rake rails:freeze:edge
– Freeze to the latest version of rails
rake rails:freeze:gems
– Freeze to the currently installed version of rails
Miscellaneous tasks
rake log:clear
– Clears all of the .log files. Handy when your development log starts to get too large. See tip # 2 for keeping your production log under control.
rake routes
– Displays all of the routes defined in config/routes.rb
rake stats
– Shows a bunch of useful stats for your app including code-to-test ratio
rake tmp:cache:clear
– Clears all of the files and directories in tmp/cache
That’s just a selection of the rake tasks available. To see the full list run
rake -T
Any others you think should be on this list? Leave a comment :)