1

私のデータベースプッシュが機能しなくなりました。

これは私のdeploy.rbファイルです: https://gist.github.com/a20d10a8a25c64c2d238

を使用して'capistrano-db-tasks'います。問題がどこにあるかをデバッグする方法は?

Are you sure you want to erase your local database with server database (y)es, (n)o  ? y
local {"adapter"=>"mysql2", "encoding"=>"utf8", "database"=>"app-development", "username"=>"root", "password"=>nil, "host"=>"localhost", "port"=>3306}
  * executing "cat /home/app/current/config/database.yml"
    servers: ["213.238.59.107"]
    [213.238.59.107] executing command
    command finished in 345ms
/Users/rege/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/psych.rb:205:in `parse': (<unknown>): mapping values are not allowed in this context at line 1 column 14 (Psych::SyntaxError)
        from /Users/rege/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/psych.rb:205:in `parse_stream'
        from /Users/rege/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/psych.rb:153:in `parse'
        from /Users/rege/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/psych.rb:129:in `load'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-db-tasks-0.2/lib/capistrano-db-tasks/database.rb:64:in `initialize'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-db-tasks-0.2/lib/capistrano-db-tasks/database.rb:122:in `new'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-db-tasks-0.2/lib/capistrano-db-tasks/database.rb:122:in `remote_to_local'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-db-tasks-0.2/lib/capistrano-db-tasks/dbtasks.rb:31:in `block (4 levels) in <top (required)>'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:138:in `instance_eval'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:138:in `invoke_task_directly'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:25:in `invoke_task_directly_with_callbacks'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:89:in `execute_task'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/namespaces.rb:191:in `method_missing'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/namespaces.rb:191:in `method_missing'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/namespaces.rb:110:in `block in define_task'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-db-tasks-0.2/lib/capistrano-db-tasks/dbtasks.rb:38:in `block (3 levels) in <top (required)>'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:138:in `instance_eval'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:138:in `invoke_task_directly'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:25:in `invoke_task_directly_with_callbacks'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:89:in `execute_task'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:101:in `find_and_execute_task'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/cli/execute.rb:46:in `block in execute_requested_actions'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/cli/execute.rb:45:in `each'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/cli/execute.rb:45:in `execute_requested_actions'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/cli/help.rb:19:in `execute_requested_actions_with_help'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/cli/execute.rb:34:in `execute!'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/lib/capistrano/cli/execute.rb:14:in `execute'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/gems/capistrano-2.15.4/bin/cap:4:in `<top (required)>'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/bin/cap:23:in `load'
        from /Users/rege/.rbenv/versions/2.0.0-p247/gemsets/app/bin/cap:23:in `<main>'
4

1 に答える 1

0

問題は、capistrano-db-tasks使用している Gem にあります。

明らかに、それが読み取る構成ファイル、YAML ファイルは明らかに不正な形式です。

Psych は Ruby ( https://github.com/tenderlove/psych ) に同梱されている YAML パーサーであり、ファイルを読み取ることができません。

これは Capistrano 自体の問題ではありません。

サーバー上のファイル/home/app/current/config/database.ymlが読み取れない可能性があります。そのファイルを YAML Lint ( http://yamllint.com/ ) で実行して、エラーがないかどうかを確認してみてください。

最近 (過去 2 年間で 1.9 が普及し始めた頃)、Ruby (別名 YARV、CRuby、MRI) は、Ruby 2.0 YAML ページから YAML パーサーを切り替えました。

シック¶ ↑</h3>

Ruby の標準ライブラリでの YAML 実装の元になった Syck は、なぜラッキー スティッフが開発したものでした。

YAML::ENGINE必要に応じて、次のように変更することで Syck を引き続き使用できます。

YAML::ENGINE.yamler = 'syck' # switch back to the default Psych YAML::ENGINE.yamler = 'psych'

(失敗した) deploy ディレクトリの Rails コンソールでそのファイルを読み取ることができることを確認し、capistrano-db-tasksgem のベンダーに連絡することもできます。他の YAML ファイルで失敗する可能性は十分にあります。

于 2013-10-23T12:32:05.407 に答える