我的 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>
但我不知道最近发生了什么变化会导致它。有什么想法吗?
更新
我不知道我的代码有任何变化,但我可能已经摆弄了环境。我想知道这是否可能是由于不同的 gemsets 和 capistrano 版本。似乎有和没有 bundle exec 调用之间存在不同的版本。
最佳答案
我遇到了完全相同的问题,在我的例子中,它与 namespace 和变量之间的冲突有关。基本上,发生的事情是:
set :user, '某个用户'
命名空间:用户做;结束
因此,每当我尝试引用用户变量时,我都会获取命名空间。我将 namespace :user 更改为 namespace :users 一切都很好。
最终解决方案 (由 OP 编辑)
这几乎是在赚钱。 Assets 管道代码包括对 #{rake}
的调用,它与我为在远程服务器上运行代码而选择的配方冲突,后者有一个 namespace :rake
行.更改我的 rake 命名空间解决了这个问题。
关于ruby-on-rails - 使用命名空间部署时出现 Capistrano 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8231908/