ドグサレ初心者のへっぽこビッグウェーブ

地球の底辺にいるゴミがプログラミングとか音楽とかを語るクソブログ

素人がRailsとGithubでherokuにデプロイをがんばる

なにやらherokuで簡単にデプロイできるみたい。
しかも今はGithubからも簡単にPushができるとかなんとか。

やってみる。

まずはherokuで色々やってみる

とりあえず昔herokuアカウントを取ったことはあるので、それを利用。
まずはherokuにアプリを作ってみる。

とりあえず念のためプロジェクトがあるフォルダで。

$ heroku create musico
Creating musico... done, stack is cedar-14
https://musico.herokuapp.com/ | https://git.heroku.com/musico.git
Git remote heroku added

なんかGit remoteって出てるんだけど自動で連携してくれてるのかな。。。

と思ったら、別にコマンドラインでやらなくても、今はherokuのサイトでできるっぽ。

herokuのアプリ一覧ページ
→右上の「+」から「Create new app」押して、適当に名前つけてcreate app(名前は後から変えれる)
→上部ナビバーから「Deploy」を選択、その下に出てくる選択肢から「Github」を選択
→その後は以下ブログ参照kayakuguri.github.io


みたいなみたいな。

sqlite3で早速のエラー

んで、デプロイをポチっておおーなんかもりもりビルドされてるーーーー

 !
 !     Failed to install gems via Bundler.
 !     
 !     Detected sqlite3 gem which is not supported on Heroku.
 !     https://devcenter.heroku.com/articles/sqlite3
 !
 !     Push rejected, failed to compile Ruby app

テテーン


sqlite3はherokuではつかえまてん。

なので、production環境ではherokuが推奨しているというPostgreSQL(pg) に設定してみる。
参考 →Rails4のアプリをHerokuで動かす - gam0022.net

sqlite3 の部分を pg へ。

んで、Gemfile変えたのでもっかいbundle installしたところ、エラー。qiita.com

これと同じでした。

brewのUpdateエラーで脱線

で、homebrew使う前に一旦アプデかけとこーと思ってbrew updateしたところ、またエラー。github.com

これと同じでした。

one-time bugって書いてあるけど、

$ echo $HOMEBREW_DEVELOPER

をしないとanytimeダメっぽい。

なにが原因かよくわかってないからよくわからないことをしている

んでは改めて。

$ brew install postgresql

完了。

$ bundle install

完了。

もっかいherokuのページでデプロイをぽちる。

エラー。

うむ、pgが有効になったのでGemfile.lockが書き換わってるのにgithubにpushしてませんでした。てへぺろ

コミットしてからもっかいぽちる。

f:id:masterkei:20151008180211p:plain

サクセース!!いえあー!!

早速ページを見てみると、、、!

f:id:masterkei:20151008181815p:plain

ギャァァァァァ

マイグレーションとの戦い

いろいろ調べてみると、どうやらマイグレートをする必要があるもよう。。

$ heroku run rake db:migrate
Running rake db:migrate on musico... up, run.7738
== 20150825070951 CreateReviews: migrating ====================================
-- create_table(:reviews)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
......


ギャァァァァァ


なにやらテストで作ったモデルとかなにやらが悪さしてるっぽい。
これを機会に全部デリートしたけどまだなんかおかしい。

あ、schema.rbがおかしいままになってるからか。

morizyun.github.io
DBをドロップする前に色々レコード追加したのもったいないのでダンプする。


そしてもっかいGemfileみたら、bundlerに'pg'なんてgemねえよってワーニングでてるっぽい。

qiita.com
qiita.com

この辺色々みてbundlerでpg入れようと思ったけどうまくいかないので、gem installした。ムキー

あとschema.rbも更新方法よくわからんので不要なテーブル記述全部消した。



ついでに気づいたらなんかvendorとvenderってフォルダできてるやんけ。なんだこれ。
あとで調べる。

試行錯誤

以前のマイグレーションファイルが悪さしてるんじゃないか?
消したモデルを指してたりするからな気がする。

railsのrakeで作成したmigrationファイルとstatus履歴を削除する
このへん参考にしながら古いマイグレーションファイルを削除。


なんか色々いじっててよくわからんくなってきたがこれでいけそうな気がスル。



できねぇぇぇぇぇ



あ、heroku側のマイグレート忘れてた。そもそもここからやん。

てか自分で元々マイグレーションでこけたって言ってるのになんでpgがうんたらかんたらやってたのか謎い。

$ heroku run rake db:migrate
Running rake db:migrate on musico... up, run.4071
== 20150902054431 CreateAnimeDetails: migrating ===============================
-- create_table(:anime_details)
   -> 4.3382s
== 20150902054431 CreateAnimeDetails: migrated (4.3387s) ======================

== 20150902070524 CreateAnimeTitles: migrating ================================
-- create_table(:anime_titles)
   -> 0.1804s
== 20150902070524 CreateAnimeTitles: migrated (0.1809s) =======================

通った。

が、アプリはエラーのまま。。。

ぐぬぬ・・・


戦いはつづく