2011-11-22 8 views
3

マイ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 '[email protected]' -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>

しかし、最近何が変わったのかはわかりません。何か案は?

更新

私は私のコードの何も変わっていないけど、私は環境といじっている場合があります。私はそれが異なる宝石とカピストラーノのバージョンに起因する可能性があるのだろうかと思っています。バンドルexecコールの有無に応じて異なるバージョンが存在するようです。ファイルエラーの

答えて

11

私はまったく同じ問題を抱えていましたが、私の場合は名前空間と変数の間の衝突に関連していました。基本的には、何が起こった:

セット:ユーザー、「一部のユーザー

名前空間:ユーザーが行います。 end

私はユーザー変数を参照しようとしていたときに、代わりに名前空間を取得していました。私はnamespace:usersをnamespace:usersに変更しました。

最終溶液(OP編)

これはお金にほとんどでした。アセットパイプラインコードには#{rake}への呼び出しが含まれていましたが、これはリモートサーバー上でコードを実行するために選択したレシピと競合しています(namespace :rake行)。私のレーキの名前空間を変更することで問題は解決しました。

+1

+1。私は同じことが起こった。 rakeタスクをリモートで実行するために、rakeという名前のdeploy.rbに名前空間がありました。私はそれをraketaskに変更しました –

+0

@EricGoldbergまさに私に何が起こったのですか?私は 'rake'名前空間を美的に持っているのが好きですが、それは行かなければならないと思います。 – evanrmurphy

-1

書き込み#{Capistrano::Configuration::Namespaces::Namespace:0xa6a0cc}

+0

いいえ、capistranoで何かがto_sを呼び出して正しいコマンドの代わりにオブジェクトIDを出力しているために出力されていますが、どこか理由がわかりません。 – DGM

+0

その場合、 'deploy:migrate'の定義がなければ何もしません。 – Hauleth

+0

それは私が書いたものではなく、それはカピストラーノの一部だと思います。 – DGM

0

予期しない終了は、通常括弧のようなブロックや演算子を閉じていないから起こります。または、名前空間ブロックにdoが存在しない可能性があります。適切に閉じられていない可能性のあるものについては、構文を再確認する必要があります。

設定を校正した後にエラーが見つからない場合は、deploy.rb設定で質問を更新できる場合に役立ちます。

+0

面白いですが、私のソースコントロールは最後の作業から何も変わっていないことを示しています。 – DGM

関連する問題