Rake question

I’ve searched this group and google, but have not found the answer to my
question. If there is a post about it somewhere, I’d greatly appreciate
a link. I also started to dig into the rake code, but, frankly, didn’t
understand it.

Question:

Why does it seem that :environment is required in order to have
ActiveRecord::Base.configurations populated with the contents of
database.yml.

Explanation:

namespace :phillip do
task :mytask do
ActiveRecord::Base.configurations.each_value do |config|
p config[‘database’]
end
end
end

prints nothing. Yet

namespace :phillip do
task :mytask => :environment do
ActiveRecord::Base.configurations.each_value do |config|
p config[‘database’]
end
end
end

outputs the database names in my database.yml file.

I understand that if I’m actually trying to do something, I’d need the
environment. But it seems that the configurations would be available
without knowing a specific environment.

Peace,
Phillip

:environment is a task that loads up environment.rb.

When you do

task :foo => :environment

you’re saying “my task depends on another task called :environment, so
invoke that first , and then do my stuff”

On Tue, Jul 1, 2008 at 1:10 PM, Phillip K. <

On 1 Jul 2008, at 19:10, Phillip K. wrote:

outputs the database names in my database.yml file.

I understand that if I’m actually trying to do something, I’d need the
environment. But it seems that the configurations would be available
without knowing a specific environment.

Well at a very basic level, ActiveRecord::Base.configurations isn’t
going to populate itself. rails isn’t even loaded if your task doesn’t
depend on :environment

Fred

Brian H. wrote:

:environment is a task that loads up environment.rb.

When you do

task :foo => :environment

you’re saying “my task depends on another task called :environment, so
invoke that first , and then do my stuff”

Thanks for the explanation, Brian. That makes much more sense now. I see
that I was confusing a task with a variable/parameter/argument.

Peace,
Phillip

Thanks for that Brian I didn’t know either!

Frederick C. wrote:

Well at a very basic level, ActiveRecord::Base.configurations isn’t
going to populate itself. rails isn’t even loaded if your task doesn’t
depend on :environment

Fred

Thanks, Fred. I’m understanding now. I haven’t ventured into rake until
now and didn’t get it. I read through some of the rake docs, but
apparently didn’t actually digest anything.

Phillip

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs