ruby-on-rails - 在 bash 中执行 rake 命令

标签 ruby-on-rails linux bash shell

我多次看到有关在 rake(任务)文件中执行 bash 文件的问题。

我的问题是,如何在 bash 文件中执行 rake 命令? 我在服务器上的每个 Rails 应用程序中都有一个 migrate.sh 文件,我使用的是通用的 publish.sh。所有这些都运行正常。

然后,我在每个 migrate.sh 中有一个像 rake tmp:clear assets:clean log:clear RAILS_ENV=production 这样的命令,它给我一个 rake : 找不到命令 错误。

帮忙吗?

最佳答案

基本上 rake 没有解析,因为 PATH 变量不正确。您可以尝试执行 echo $PATH。您也可以创建一个 bash 脚本并提供 rake 所需的一些环境变量,如下所示:

#!/bin/bash

GEM_HOME=/home/tuxdna/.gems
SHELL=/bin/bash
USER=tuxdna
PATH=/home/tuxdna/.gems/bin:/usr/lib/ruby/gems/1.8/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
GEM_PATH=/home/tuxdna/.gems:/usr/lib/ruby/gems/1.8

cd ~/somesite
export RAILS_ENV=production
bundle exec rake mytask:task1

关于ruby-on-rails - 在 bash 中执行 rake 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20993814/

相关文章:

Linux,检查当前没有正在运行的 cron 作业的代码?

linux - 使用 awk 格式化文本

使用 ActiveRecord 进行 MySQL 分区

html - 为什么带有嵌套资源的form_for会出现语法错误?

c++ - 使用 ioctl 在 C++ 中以编程方式添加路由

linux - 如何找出适合由 shell 脚本解析的 linux 机器的总物理内存 (RAM)?

bash - 如何在bash脚本中运行sqlite3?

ruby-on-rails - 如何在 rails 中按行计数?

ruby-on-rails - 使用乘客运行 Rails 3.0 和 Rails 3.1 应用程序(使用不同的 rvm gemsets)

c - 这段 Ragel 代码有什么作用?