ruby-on-rails - 使用命名空间部署时出现 Capistrano 错误

标签 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>

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

更新

我不知道我的代码有任何变化,但我可能已经摆弄了环境。我想知道这是否可能是由于不同的 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/

相关文章:

ruby-on-rails - 当我安装了 1.3.6 时,为什么会收到 "Rails requires RubyGems >= 1.3.2"?

ruby-on-rails - Capistrano 在部署时要求输入密码,尽管有 SSH key

ruby-on-rails-3 - Capistrano 部署 Assets 预编译从不编译 Assets ,为什么?

ruby-on-rails - 在服务器上部署 Rails 应用程序时遇到问题

ruby-on-rails - Ruby:将方法添加到现有模块

ruby-on-rails - Capistrano 失败 - 没有当前目录/ bundle : not found/rolling back

ruby-on-rails - 如何调试由工头启动的 Rails (3.2) 应用程序?

ruby-on-rails - grouped_collection_select 与 I18n

sql - 如何从 ruby​​ on rails 上的有序列表中按计数子查询进行排序和分组

Ruby rspec 测试命令 : could not locate Gemfile