概要
基本的な流れは公式に従ってやってみれば問題ないのだろうけど、自分で作ったものをデプロイしようとしたらちょこちょこ詰まったので備忘録。
https://devcenter.heroku.com/articles/getting-started-with-go https://github.com/heroku/go-getting-started
サブディレクトリのみ対象のときは subtree で push
これは自分がディレクトリ構造をコネてたのが原因なのだが、 git リポジトリとアプリケーションのディレクトリ構造があってないと、うまくデプロイできない。
デプロイ対象がサブディレクトリにあるようなケースでは subtree を使って push する。
git subtree push --prefix my-app/ heroku main
- Rails TutorialでHerokuにデプロイする時に、サブディレクトリを指定する方法 - Ikkyu's Tech Blog
- Herokuでサブディレクトリをデプロイできるらしいのでメモ - 名もなき未知
subtree では force push できない
いわゆる force-push ができない状況になると、 heroku に push できなくなる。
subtree には force オプションがないので、 subtree split でどうにかする。
git push heroku `git subtree split --prefix myapp mainr`:main --force
main 以外のブランチをデプロイするとき
my-branch:main
のようにしてあげないと skip される。
Postgres への接続
接続情報を Config Vars に設定
Postgres add-on だと DATABASE_URL という変数に格納されるが、接続文字列をそのまま使わなかったので、バラして別名の変数に入れ直した。
DATABASE_URL は下記の形式なので、それぞれ設定し直した。
postgres://{user}:{password}@{hostname}:{port}/{database-name}
ちなみに heroku config
で Config Vars は取得できる。
Heroku CLI のインストール
Mac だと homebrew で入る。
<200b>brew tap heroku/brew && brew install heroku
heroku autocomplete
しておくと補完をしてくれるようになる。
おまけ
homebrew で入れたやつの completion シュッとやる方法がドキュメントにあった。
heroku run
heroku run bash
やると直接コマンド叩ける。
調査のとき便利。