🗂

【heroku 】サブディレクトリにあるRailsプロジェクトをデプロイする

2021/12/08に公開

これはなに?

  • サブディレクトリにあるRailsプロジェクトを、herokuにデプロイしたい際のメモです。
  • 構成は以下みたいな感じ
    • Railsプロジェクトをバックエンド配下に、フロントのプロジェクトをfrontend配下に
├── backend
│   ├── app
│   ├── bin
│   ├── config
│   ├── db
│   ├── lib
│   ├── log
│   ├── public
│   ├── spec
│   ├── storage
│   ├── tmp
│   └── vendor
└── frontend
    ├── node_modules
    ├── public
    └── src

結論

# backendディレクトリ配下のプロジェクトをdeploy
git subtree push --prefix backend/ heroku master
# migration
heroku rake db:migrate

導入メモ

  • herokuのプロジェクト作成
$ heroku create project
  • deploy
$ git subtree push --prefix backend/ heroku master
  • DB作成(Mysqlの場合)
$ heroku addons:create cleardb:ignite
  • DBの設定確認
$ heroku config
# DBの設定
CLEARDB_DATABASE_URL: mysql://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true
  • 環境変数の設定
$ heroku config:add DB_NAME='<データベース名>'
$ heroku config:add DB_USERNAME='<ユーザー名>'
$ heroku config:add DB_PASSWORD='<パスワード>'
$ heroku config:add DB_HOSTNAME='<ホスト名>'
$ heroku config:add DB_PORT='3306'
$ heroku config:add DATABASE_URL='mysql2://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true'
  • database.ymlの更新
production:
  <<: *default
  host: <%= ENV["DB_HOSTNAME"] %>
  database: <%= ENV["DB_NAME"] %>
  username: <%= ENV["DB_USERNAME"] %>
  password: <%= ENV["DB_PASSWORD"] %>
  • migration
$ heroku rake db:migrate

最後に

  • サブディレクトリでデプロイするのに少しはまりましたが、heroku楽ちん〜

Discussion