English 中文(简体)
Why does mysqldump need to be fully pathed when called from a controller or model?
原标题:

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

最佳回答

You can always modify your PATH environment variable as required, of course. Something like this is best done in environment.rb or your specific environment config:

add_paths = %w[ /usr/local/mysql/bin /opt/local/bin ]
ENV[ PATH ] = (ENV[ PATH ].split(/:/) + add_paths).uniq.select do |p|
  File.exist?(File.expand_path(p))
end.join( : )

This way you can add arbitrary elements to your path if they exist on your system.

问题回答

I recently found out Passenger (mod_rails) does not run in a shell like Mongrel, which is obvious when you think about it. Therefore it does not inherit the full system $PATH.





相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...

热门标签