Tambourine作業メモ

主にスキル習得のためにやった作業のメモ。他人には基本的に無用のものです。

LaCoocanからHerokuへの移行

RubyCGIをいっこ使いたいがだけのためにずっと惰性で契約していたLaCoocanだが、さすがにお金がもったいない気がするので移行しようかと思う。試して見よう。

移行先はとりあえず、Herokuにしてみますかね。

https://devcenter.heroku.com/articles/getting-started-with-ruby#introduction

を見ながら、やってみることにする。

まず、Herokuのアカウントをとる。

次に、Ruby 2.3.4を入れろというので入れる。

$ brew upgrade rbenv
$ rbenv install 2.3.4
$ rbenv global 2.3.4

Bundlerも入れろというので入れる

$ gem install bundler

次に、HerokuのCLIツールをいれろというので、pkgをダウンロードして入れる。

これでherokuコマンドが使えるはずなので、heroku loginと打てと書いてあるが、間違ってherokuとだけ打ってしまった。が、なんか動いて、ユーザー名とパスワードをいれたら、ログインしたぞというようなメッセージがでた。いいのかな?良いことにする。

次に、テンプレをもらってくる。

$ git clone https://github.com/heroku/ruby-getting-started.git                                                                             

今度はこれをそのままデプロイする。

$ cd ruby-getting-started/
$ heroku create
Creating app... done, ⬢ tranquil-savannah-22324
https://tranquil-savannah-22324.herokuapp.com/ | https://git.heroku.com/tranquil-savannah-22324.git

これをすると、ローカルにもgitリポジトリは作られるからねとドキュメントには書いてある。

$ git push heroku master

Warningで「お前のBundlerのバージョンがlockfile作ったときより古いぜ。gem install bundlerし直せよ」と言われる。いや、ついさっき入れたところなんだが・・・Rubyが2.4じゃないから?よくわからない。

これでもう動いているらしい。ログに出ているURLにアクセスすると、画面が出ている。heroku openでも行けるらしい。

さて、このテンプレアプリをローカルでも動かすようにする。railsアプリなのでRDBが必要。
PostgreSQLを入れろと仰っているのでを参考にしてインストール。

$ brew install postgresql

この状態で、Herokuのガイドにあるコマンドを打ってみる。

$ psql -h localhost
psql: could not connect to server: Connection refused
	Is the server running on host "localhost" (::1) and accepting
	TCP/IP connections on port 5432?
could not connect to server: Connection refused
	Is the server running on host "localhost" (127.0.0.1) and accepting
	TCP/IP connections on port 5432?

サーバが起動してないっすな。

brewでinstallしたときのログに

To have launchd start postgresql now and restart at login:
  brew services start postgresql
Or, if you don't want/need a background service you can just run:
  pg_ctl -D /usr/local/var/postgres start

と出ていたので、

$ pg_ctl -D /usr/local/var/postgres start

としてから、実行してみると

$ psql -h localhost
FATAL:  database "tambara" does not exist
psql: FATAL:  database "tambara" does not exist

メッセージは変わった。DBを作らないといけないっぽい。
まあ、とりあえず先に進んでみようか。

つづく。