web-dev-qa-db-ja.com

Rails rake asset:precompile for production

アプリをHerokuにデプロイするためにアセットをプリコンパイルしようとしていますが、エラーを追跡する必要があります。

実行中:

Rails_ENV=production bundle exec rake assets:precompile

エラー:

/bin/rake assets:precompile:all Rails_ENV=production Rails_GROUPS=assets
rake aborted!
Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` (pg is not part of the bundle. Add it to Gemfile.)

開発SQLiteと実稼働Postgresqlで次のGemfileを使用しているため

gem "Rails", "~> 3.1.0"

group :production do
  gem 'pg'
end

group :development, :test do
  gem 'sqlite3'
end

gem 'sass-Rails', "~> 3.1.0"

group :assets do
  gem 'coffee-Rails', "~> 3.1.0"
  gem 'uglifier'
  gem 'compass', '~> 0.12.alpha.0'
  gem 'html5-boilerplate'
end

私は多くのことを試みましたが、これを動作させることができません。

これが重要かどうかはわかりませんが、database.ymlは次のようになります。

production:
  adapter: postgresql
  Host: localhost
  database: db
  encoding: unicode
  username: user
  password: ''
25
Kieran Klaassen

古い質問ですが、受け入れられた答えは本当に質問に答えません-私は検索でこれを見つけたので、それは関連があると思います。

エラーの理由は、gem 'pg'が実動gemグループにあるためです。
rake assets:precompileを実行すると、実稼働環境にアクセスします。したがって、実稼働環境をロードしようとしていますただし、すべての依存関係がインストールされているわけではありません

Rails_ENV=production bundle exec Rails serverを実行すると、おそらく同様のエラーが発生します。

私は2つの異なる解決策を考えることができます

1)アプリのルートに.bundle/configファイルがあるかどうかを確認します。そうした場合は、WITHOUT :productionなどと表示されているかどうかを確認してください。その行または.bundleディレクトリ全体を削除して、bundleを再度実行します。

2)Gemfile

gem :development, :production do
  gem 'pg'
end

:productionグループを削除しながら
_bundleを再度実行します

古いものを持ってきてすみません...

54
mraaroncruz