Why does mysqldump need to be fully pathed when called from a controller or model?

Posted by Kris on Stack Overflow See other posts from Stack Overflow or by Kris
Published on 2009-11-26T13:41:05Z Indexed on 2010/03/23 3:01 UTC
Read the original article Hit count: 351

Filed under:
|
|
|

When I call mysqldump from a controller or model I need to fully path the binary, when I call it from Rake I don't need to.

If I do not fully path I get a zero byte file...

I can confirm both processes are run using the same user.

# Works in a controller, model and Rake task
system "/usr/local/mysql/bin/mysqldump -u root #{w.database_name} > #{target_file}"

# Only works in a Rake task
system "mysqldump -u root #{w.database_name} > #{target_file}"

If I call the Rake task from the action it also fails (zero byte file).

OS: Mac Ruby 1.8.6

EDIT: I use Etc.getpwuid(Process.uid).name to get the User of the current process

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about ruby