Ruby exec“mysql -u root ...< some.sql”不起作用

时间:2011-03-01 17:31:50

标签: mysql ruby-on-rails ruby exec

我在ruby-1.8.7-p302

exec "mysql -u root --password=****** onc_test < support/submission.sql"

我突然退出,无论是在Rails,Rails控制台还是IRB中。我正在运行mysql Ver 14.14 Distrib 5.1.53, for apple-darwin10.4.0 (i386) using readline 6.1

顺便提及,

exec "mysqldump -u root --password=****** onc_test > support/submission.sql"

工作正常。

2 个答案:

答案 0 :(得分:2)

我将推测也许exec用一些破坏它的东西包裹它

你尝试过使用反引号吗?

`mysql -u root --password=****** onc_test < support/submission.sql`

检查输出

答案 1 :(得分:1)

exec导致立即退出,因为它就是这样做的。它立即退出你的ruby过程。来自rubydoc上的内核文档:

  

通过运行给定的外部命令替换当前进程。

如果您想让ruby进程保持活动状态,请使用反引号或system。至于你的mysql导入无法正常工作,请尝试为它提供sql转储的绝对路径。