画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

herokuにサンプルアプリをアップしてみる2

こちらのサイトがわかりやすそうなので、見ながら作業してみる。
CURDのやつがherokuにデプロイ出来れば目標達成。

http://gihyo.jp/dev/serial/01/heroku/0002?page=2


サイト見てばっかりだが、最初の環境構築はわかんないので仕方がない。

CURD

$ rails g scaffold Product name:string price:float url:string
$ rake db:migrate
$ rm public/index.html

config/routes.rbに以下の行を追加

root :to => "products#index"

動作確認

$ rails s

ブラウザでhttp://localhost:3000/にアクセスして,動作確認。
ローカルではうまく行く。
以下の感じ。適当に追加した後。

●herokuへのデプロイ作業

$ git add .
$ git rm public/index.html
$ git commit -m "Scaffold products"
$ git push heroku master
$ heroku run rake db:migrate
$ heroku open


※ここで、heroku側でCURDのサンプルが表示されるはずだが、表示されない。。。
相変わらず、初期画面のままです。

●原因

$ heroku run rake db:migrate

実行時に、以下のエラーが出てたの見落としてた。

Running `rake db:migrate` attached to terminal... up, run.1
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
  • さらによく見たら、「$ git push heroku master」の時にエラー出てた。。。
An error occurred while installing sqlite3 (1.3.6), and Bundler cannot continue.
       Make sure that `gem install sqlite3 -v '1.3.6'` succeeds before bundling.
 !
 !     Failed to install gems via Bundler.
 !    
 !     Detected sqlite3 gem which is not supported on Heroku.
 !     http://devcenter.heroku.com/articles/how-do-i-use-sqlite3-for-development
 !
 !     Heroku push rejected, failed to compile Ruby/rails app
    • ってか、こちらのサイトに書かれてました。

http://d.hatena.ne.jp/EnnuimaZ/20120407/1333806290

    • 修正方法は全く同じです
 heroku だと、 sqlite3 がビルドできないので、開発環境でだけ使うよ、っていう宣言が必要
 (heroku では、 production の gem だけビルドされる)
-gem 'sqlite3'
+gem 'sqlite3', groups: %w(test development), require: false
 これもいれといたほうがいい
+gem 'pg', groups: %w(production), require: false
    • 修正。修正後はGemfileを更新するため、以下のコマンドを実施。そしてエラー発生
$ bundle install

An error occured while installing pg (0.14.0), and Bundler cannot continue.
Make sure that `gem install pg -v '0.14.0'` succeeds before bundling.
    • bundleをinstallする前に、pgを入れろと。仰せの通りにpgをインストールしようとしたが、出来なかった。。。ハマった。。。
    • 検索したら、以下のサイトがヒット!

http://d.hatena.ne.jp/EnnuimaZ/20120123/1327334199

$ brew install postgresql
    • って、brewって、、、→Homebrewはインストールしていなかったので以下のをサイトをもとにインストール

http://d.hatena.ne.jp/absj31/20120404/1333546097

    • 再度postgresqlのインストールを行いインストール完了。インストールに意外と時間がかかった。
  • よっしゃー!気合を入れて、最初からコマンドを実施していく。
$ bundle install
$ rake db:migrate
$ git add .
$ git rm public/index.html
$ git commit -m "test"
$ git push heroku master
$ heroku run rake db:migrate
$ heroku open

●キター!!!!
出来なかった事が出来るようになった時の感動は。。。最高ですな!!
大変だった。。。環境構築はやっぱりわかんない部分が多いから時間かかるなぁ。

ちなみに、いろいろいじったので、herokuのリンクはこちらになります。
前回と変わっています。
http://rocky-chamber-4956.herokuapp.com/


やべぇ。仕事行く支度しなきゃ。