1

RailアプリをHerokuにデプロイするのに問題が発生しています。これを整理するために実行するアイデアのチェックリストを本当に感謝します、私は私のアイデアが私の髪を抜くことに頼っていることを使い果たしました!

短編小説: heroku run rake db:migrateエラーを生成します:

Running rake db:migrate attached to terminal... up, run.1
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
rake aborted!
syntax error on line 7, col 11: `'

これは、修正が非常に簡単なはずです。問題は、プラグインがないことです。

長い話:ステージングのためにRailsアプリを再デプロイする準備をしています。これはHeroku上のRails3.0アプリで、Rails 3.2、Ruby 1.9.2へのアップグレード、プラグインの削除、メジャーな書き直しなど、メジャーアップグレードを完了しました。現在、Herokuの杉のスタックにプッシュして、さらにテストを実行しようとしています。

私はこの問題を数日間解決しようとしていて、どこかに到達していると考え続けていますが、その後がっかりしました。最近では、gitリポジトリの位置がずれていて、Herokuリモートにこれらのプラグインを使用した古いコミットが含まれていると思いました。私はもはやそうではないと思います。(これを確認したかったのですが、このエラーのため、Herokuコンソールにアクセスしてファイル構造を確認できません)。

確認のため、ローカルマスターとリモートのgithubリポジトリでvendor/pluginsフォルダーが完全に空になっています。すべての更新をプッシュしたので、リモートHerokuブランチでは空になっているはずです(テストする新しいリモート名で完全に空白のアプリを作成しましたが、同じエラーが発生しました)。ベンダー/プラグインは空ですが、実際にはベンダー/プラグインは存在せず、プラグインを削除した後に完全に削除されました。

以前のバージョンでは、HABTMチェックボックスとfancybox-railsの2つのプラグインがアプリにインストールされていました。これらは両方ともアンインストールされていrails plugin remove <<plugin name>>ます。

エラー/app/rakefile:7で参照されているファイルを確認しましたが、この行に問題はありませんMyApp::Application.load_tasks

herokuコンソールを起動しようとすると、エラーが少し異なり、参照します/app/config/environment.rb:5)。ここにも何も見えませんMyApp::Application.initialize!

私はこれらのプラグインの残骸や古いrequireステートメントを探している可能性のあるすべての場所を調べてきましたが、何も見つかりませんでした。

他にどこを見られるかについてのアイデアを本当にいただければ幸いです。必要に応じてさらに情報を提供することができますが、この段階で何が役立つのかわかりません!!

髪の毛を保つのを手伝ってくれてありがとう!

編集

エラーで参照されているrakefileの全内容を追加しています。これに関する問題は見当たりません。

# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require File.expand_path('../config/application', __FILE__)
require 'rake'

MyApp::Application.load_tasks
4

3 に答える 3

2

何度も髪を引っ張ったりフラストレーションを感じたりした後、最終的にログの次のエントリにたどり着きました。

/usr/local/lib/ruby/1.9.1/syck.rb:135:in `load': syntax error on line 7, col 11: `' (ArgumentError)

syck.rb は yaml ファイルを解析しますが、環境固有の情報が省略されている yaml ファイルに (小さな) 問題がありました。

詳細については、この SO の質問を参照してください。

于 2012-04-29T03:50:55.743 に答える
1

プラグインの非推奨警告は、ビルド時に Heroku がアプリケーションに挿入するプラグインからのもので、プラットフォーム上で適切に実行されます。それらは無視できます。

問題の核心は、ソース/rake ファイルの構文エラーに関連しているようです。重要な出力は次のとおりです。

rake aborted!
syntax error on line 7, col 11: `'

エラーが発生したファイルの 7 行目を見てください (参照用に残りのスタック トレースを投稿してください)。修正が必要な何らかの構文エラーが見つかります。

プラグインのロード時間とアプリのロード時間を明確に分けたい場合はheroku run bash、シェルをロードしてから rake タスクを実行して、その出力が分離されていることを確認します。

$ heroku run bash
> bundle exec rake db:migrate

それが役立つことを願っています。

于 2012-04-24T14:26:23.067 に答える
0

Heroku がプラグインを使用していくつかのタスクを自動化することをどこかで読んだので、それはあなたのせいではありません

非推奨の警告を黙らせたい場合は、次の小さなスニペットを使用してください。

# Load the rails application
require File.expand_path('../application', __FILE__)

# Initialize the rails application
ActiveSupport::Deprecation.silence do
  Selfcare::Application.initialize!
end
于 2012-04-24T09:16:09.473 に答える