Forum: Ruby on Rails batch script using active record

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Dan (Guest)
on 2007-01-19 17:29
(Received via mailing list)
Hello,

I need to have some scripts periodically access the same database as my
Rails application is using and perform some calculations.

>From an earlier post, recipe 26 from Rails Recipes was recommended as a
way to configure and run the script.  I was looking around on on the
Web and found an article that recommended place my scripts in the
standard rails 'script' directory and including the line:

require File.join(File.dirname(__FILE__), '../config/environment')

at the beginning of the script.  This seems to run fine as well, with
less repetitive configuration.  Aside from the overhead of loading the
the Rails environment, what would be the advantages and disadvantages
of each approach?

Also, for the second method what would be the best way to specify the
environment?

Thanks,
Dan
Anthony E. (Guest)
on 2007-01-19 17:31
(Received via mailing list)
Recipe 26 could be used anywhere whereas requiring the environment
requires you to be able to reference a Rails config directory.

As for specifying the environment you could use something like this at
the beginning of your script:

ARGV.each do |pair|
  name, value = pair.split(/=/)
  ENV[name] = value
end

Then you could invoke your script like:

    /myscript RAILS_ENV=production

You could use this to specify other command line options as well:

    /myscript RAILS_ENV=production PATH=/some/path FOO=bar

HTH.

V/r
Anthony E.

On 1/13/07, Dan <removed_email_address@domain.invalid> wrote:
>
> Thanks,
> Dan
>


--
Cell: 808 782-5046
Current Location: Melbourne, FL
This topic is locked and can not be replied to.