使用命名空间部署时出现capistrano错误

时间:2011-11-22 18:33:32

标签: ruby-on-rails ruby capistrano

我的cap deploy:migrate突然停止工作,但出现错误:

*** [err :: 1.2.3.4:2222] bash: -c: line 1: syntax error: unexpected end of file command finished in 559ms
failed: "/usr/local/bin/rvm-shell 'ruby-1.9.2-p0@gemset' -c 'cd /home/user/app/releases/20111122182205 && #<Capistrano::Configuration::Namespaces::Namespace:0xa6a0cc> RAILS_ENV=staging  db:migrate'" on 1.2.3.4:2222

显然这个错误与这不是一个有效的命令... #<Capistrano::Configuration::Namespaces::Namespace:0xa6a0cc>

有关

但我不知道最近会发生什么变化导致它。有什么想法吗?

更新

我对我的代码没有任何改变,但我可能已经摆弄了环境。我想知道是否可能是由于不同的宝石和capistrano的版本。看起来有或没有bundle exec调用之间存在不同的版本。

3 个答案:

答案 0 :(得分:11)

我有完全相同的问题,在我的情况下,它与命名空间和变量之间的冲突有关。基本上,发生的事情是:

设置:用户,'某些用户'

命名空间:用户做;端

因此,每当我尝试引用用户变量时,我都会获得命名空间。我将命名空间:用户更改为命名空间:用户,这一切都很好。

最终解决方案 (由OP编辑)

这几乎是钱。资产管道代码包括对#{rake}的调用,该调用与我在远程服务器上运行代码时选择的配方冲突,该配方具有namespace :rake行。更改我的rake命名空间修复了问题。

答案 1 :(得分:0)

文件错误的意外结束通常发生在未关闭块或括号等运算符时。或者您可能错过了命名空间块中的do。你应该仔细检查你的语法是否正确关闭了。

如果在校对配置后没有发现错误,那么如果您可以使用deploy.rb配置更新问题,将会有所帮助。

答案 2 :(得分:-1)

撰写#{Capistrano::Configuration::Namespaces::Namespace:0xa6a0cc}