🚅

Railway × Rails のデプロイ方法&SQLの接続方法

2022/05/24に公開

導入

heroku君がGitHub連携使えないためRailway君試してみました。
ドキュメントとか公式Discordあるけどオールアメリカ語。
あと躓いた点があるため記事を書こうと久々に筆を執りました。

あと備忘録として。

ターゲットとしてはデプロイしたことない人向けです。
CLIもあるけど、今回は使いません。

デプロイ

GitHubからとってくる分には流れで行けると思うので割愛します。

自分の場合MySQLとRedisで作成したためそれで進めます。

スクショ小さくて申し訳ないけど見なくても行けるからいいよね。
右上の +NEW からDBの追加ができるので、必要なものを追加します。

DB接続


環境変数で接続をするのですが、注意ポイントです。

ここのURLでも変数でもいいのですが、

.env
DATABASE_URL=mysql://${{ MYSQLUSER }}:${{ MYSQLPASSWORD }}@${{ MYSQLHOST }}:${{ MYSQLPORT }}/${{ MYSQLDATABASE }}

これを

.env
DATABASE_URL=mysql2://${{ MYSQLUSER }}:${{ MYSQLPASSWORD }}@${{ MYSQLHOST }}:${{ MYSQLPORT }}/${{ MYSQLDATABASE }}

こう

わからない人向けに
DATABASE_URL=mysql2←ここ

2をつけましょう。
これはRailsのadapterの仕様なんですが、そのままやってたら嵌るのなんとかしてほしい……。

これに合わせてdatabase.ymlも書き換えます。

database.yml
default: &default
  url: <%= ENV['DATABASE_URL'] %>
  adapter: mysql2
  timeout: 5000

development:
  <<: *default
  database: railway
test:
  <<: *default
  database: railway_test
 
production:
  <<: *default
  url: <%= ENV['DATABASE_URL'] %>
  adapter: mysql2
  timeout: 5000

こんな感じでうまくいくはず。

development.rb
Rails.application.configure do
  config.hosts << "{host名}"
end

ついでにこれも入れとけばうまくいくはず。

終わり

Railway君便利だねぇ。
あとはスタート時のコマンドでrails sをしたりすればいいはず。

これから君もRailwayerだ!
語呂悪いし公式でなんていうんだろ……。


追記

Railsだとrails db:migrateとかしたいからCLIのほうがいいのかも。
GitHub連携かCLIかってだけだからそんなやり方は変わんないはず。

Discussion