Adding options to rake tasks
I've been wondering how to call a rake task and pass it arguments.... just found it:
the example is in the rails code source code (railties/lib/tasks/databases.rake) for migrations. Normally you just call 'rake migrate' to come up to the current version. But if you want to revert back to another database version, you would add "rake migrate VERSION=12" (or whatever version is appropriate).
A quick look at the rails codebase has the migrate task as:
It uses
So rake just uses the command line to set up environment variables. Good to know.
the example is in the rails code source code (railties/lib/tasks/databases.rake) for migrations. Normally you just call 'rake migrate' to come up to the current version. But if you want to revert back to another database version, you would add "rake migrate VERSION=12" (or whatever version is appropriate).
A quick look at the rails codebase has the migrate task as:
task :migrate => :environment do
ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
Rake::Task[:db_schema_dump].invoke if ActiveRecord::Base.schema_format == :ruby
end
It uses
ENV["VERSION"]which is just accesses the environment.
So rake just uses the command line to set up environment variables. Good to know.
0 Comments:
Post a Comment
<< Home