素人が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してませんでした。てへぺろ
コミットしてからもっかいぽちる。
サクセース!!いえあー!!
早速ページを見てみると、、、!
ギャァァァァァ
マイグレーションとの戦い
いろいろ調べてみると、どうやらマイグレートをする必要があるもよう。。
$ 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ねえよってワーニングでてるっぽい。
この辺色々みて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) =======================
通った。
が、アプリはエラーのまま。。。
ぐぬぬ・・・
戦いはつづく