我的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调用之间存在不同的版本。
答案 0 :(得分:11)
我有完全相同的问题,在我的情况下,它与命名空间和变量之间的冲突有关。基本上,发生的事情是:
设置:用户,'某些用户'
命名空间:用户做;端
因此,每当我尝试引用用户变量时,我都会获得命名空间。我将命名空间:用户更改为命名空间:用户,这一切都很好。
最终解决方案 (由OP编辑)
这几乎是钱。资产管道代码包括对#{rake}
的调用,该调用与我在远程服务器上运行代码时选择的配方冲突,该配方具有namespace :rake
行。更改我的rake命名空间修复了问题。
答案 1 :(得分:0)
文件错误的意外结束通常发生在未关闭块或括号等运算符时。或者您可能错过了命名空间块中的do
。你应该仔细检查你的语法是否正确关闭了。
如果在校对配置后没有发现错误,那么如果您可以使用deploy.rb配置更新问题,将会有所帮助。
答案 2 :(得分:-1)
撰写#{Capistrano::Configuration::Namespaces::Namespace:0xa6a0cc}