Rails3.1 Heroku Deployで多くの問題を抱えています
-
22-10-2019 - |
質問
シンプルなRails3.1アプリの展開に多くの問題が発生しています。主な問題が2つあるようです。
- 資産パイプラインのため、資産は生産環境にロードされていません。
- デフォルトのdb sqlite3を使用して開発します。 HerokuはPostgreSQLを使用しています。
基本的に、私は自分の開発から展開へのワークフローを可能な限りシームレスにしたいと思っています。私の開発環境をセットアップするための最良の方法を誰でもお勧めできますか?
開発環境でPostgreSQLを使用することが最善であると思います。これをセットアップする方法についての良い投稿を知っている人はいますか?
ユニコーンを使用する必要がありますか?薄い?
聞いたことがないかもしれない他の宝石を使うべきですか?
開発環境でかなりクールなものを構築できるようになったが、アプリをオンラインにする方法がわからないので、私はイライラしていると感じています。多分私はこれをすべて間違って見ています。お知らせ下さい。
やろうとすると、このエラーが発生します。
group :production do
gem 'pg'
end
Installing pg (0.11.0) with native extensions /home/work/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:552:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/home/work/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/home/work/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
解決
コミットの前に、次のことを実行して、資産を事前にコンパイルします。
$> bundle exec rake assets:precompile
herokuデータベースのために何も設定する必要はないはずです
gem 'pg'
Gemfileの制作セクション。それはそれ自体ですべてをすべて把握しています。
私がかなり使用するいくつかの素晴らしいトリックは次のとおりです。
$> heroku db:push
$> heroku db:pull
プッシュとプルについて読んでください ここ
私はMySQLが最高のフロントエンドの私見を持っているのでローカルに開発しますが、生のテーブルでの作業量に応じて、SQLite3またはPostgresを使用しても大丈夫でしょう。
他のヒント
私はその問題を抱えていましたが、シーダースタックに変更しましたが、それが資産の問題を解決しているようです。 DBについては、指定するだけです
group :production do
gem 'pg'
end
gemfileで
実際、私はあなたの回答の両方から情報を使用して、それを機能させました。私の資産の問題は、で解決されました bundle exec rake assets:precompile
そして、私のDBの問題は解決されました
group :production do
gem 'pg'
end
また、これを追加します:
group :development do
gem 'sqlite3'
end