当我mysqldump
从控制器或模型调用时,我需要完全路径二进制文件,当我从 Rake 调用它时,我不需要。
如果我没有完全路径,我会得到一个零字节文件......
我可以确认两个进程都是使用同一个用户运行的。
# 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}"
如果我从操作中调用 Rake 任务,它也会失败(零字节文件)。
操作系统:Mac Ruby 1.8.6
编辑:我Etc.getpwuid(Process.uid).name
用来获取当前进程的用户