2011-10-18 9 views
1

私は、簡単なrails3.1アプリケーションのデプロイメントに苦労しています。 2つの主な問題があるようです。rails3.1 herokuデプロイメントに多くの問題がある

  1. アセットパイプラインのため、アセットは本番環境ではロードされません。
  2. 私はデフォルトdb sqlite3で開発します。 Herokuはpostgresqlを使用します。

基本的には、私の開発から展開までのワークフローを可能な限りシームレスにしたいと考えています。誰でも私の開発環境をセットアップする最良の方法をお勧めしますので、$ git push herokuを実行すると、すべてがうまく動作します。

私は、開発環境で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 

答えて

1

group :production do 
    gem 'pg' 
end 

を指定しますあなた以外のherokuデータベース

gem 'pg' 

gemfileのproductionセクションにあります。それはすべてそれ自身のすべての残りの部分を把握します。

私はかなりのビットを使用し、一部の素敵なトリックがあります:プッシュ&プルhere

について

$> heroku db:push 
$> heroku db:pull 

読むことが最良のフロントエンド私見を持っているので、私はmysqlの上でローカルに開発していますが、大丈夫だと思います生のテーブルでどれくらい作業したいかによって、sqlite3またはpostgresも使います。

+0

という開発を使って指定します。ちょうど新しいプレーンレールアプリでそれを試して、レールのロゴが表示されます。今私は実際のアプリで試してみるつもりです。ありがとう –

+0

私の実際のアプリケーションでは動作しません。ただ500エラーページを取得し続ける –

+0

あなたのdevマシンのpg gemに問題がある場合は、[こちら](https://bitbucket.org/ged/ruby-pg/wiki/Home)をお読みください – trogdor33

1

私はその問題を持っていたが、私は杉スタックに変更し、それが資産の問題を解決するように見えました。

$> bundle exec rake assets:precompile 

あなたがのために何を設定する必要はありません:あなたのコミットはあなたの資産をプリコンパイルするために次のことを実行する前にDBについては、ちょうどgemfile

+0

は、私も開発宝石のグループを指定する必要がありますか、またはバンドラは宝石を前提としません'sqlite3'は開発のためだけですか? –

+0

gem 'sqlite3'、 '1.3.4'、:group =>: –

0

実際、私はあなたの答えの両方の情報を使用してそれを動作させました。私の資産の問題はbundle exec rake assets:precompileで解決しましたし、私のデシベルの問題が

group :production do 
    gem 'pg' 
end 

によって解決しても、これを追加した

group :development do 
    gem 'sqlite3' 
end 
+1

Herokuは、デプロイメントプロセスの一部として資産をプリコンパイルします.Rails 3.1アプリケーションのデプロイメントプロセスは、単純なgit push herokuコマンドです。 http://devcenter.heroku.com/articles/rails31_heroku_cedar –

関連する問題