我有一个像下面这样的rake任务。但是,在第一个系统行运行并且User.find_each(&:save)结束后,heroku控制台保持打开状态,并且ruby脚本不会进入下一个系统调用,因为第一个系统调用没有完成" 。用户记录保存完成后,如何退出第一个系统调用(并继续执行下一个系统调用?
)task :production do
Bundler.with_clean_env do
system("echo 'User.find_each(&:save)' | heroku run console --remote production")
system("echo 'Post.find_each(&:save)' | heroku run console --remote production")
end
end
答案 0 :(得分:1)
您正在运行未终止的内容(rails console
)。
在本地运行rails console
时会发生什么?在你输入`exit'之前它不会终止。
所以试试这个:
echo'User.find ...;退出'| heroku运行控制台