1
1

【Docker Rails】HerokuのclearDBのIgniteプランが終了するそうなので、renderに移行した話

Last updated at Posted at 2023-12-31

前提

最近、こんなメールが届きました。

Dear Valued ClearDB Customer,
We are improving and modernizing our ClearDB platform. As result, the Ignite Plan that you are currently subscribed to will be retired on January 15th, 2024. If you would like to continue using ClearDB MySQL databases, you will need to upgrade to the Punch Plan which is $9.99 per month.

翻訳

ClearDBをご愛顧いただいている皆様へ、
弊社は ClearDB プラットフォームの改善と近代化を進めております。そのため、現在ご契約いただいている Ignite プランは 2024 年 1 月 15 日に終了いたします。引き続きClearDB MySQLデータベースをご利用になりたい場合は、月額$9.99のPunchプランにアップグレードする必要があります。

ほとんど無料で運用していたアプリにお金がかかってしまうため、何らかの対応をする必要がありました。
以前、renderを使用したことがあったので、移行した際のことをまとめます。

注意

  • DBにはほとんどデータがなかったので、中身に関してはまっさらにしました
  • 移行の際は慎重に注意して自己責任で行ってください
  • 若干日が空いて書いているので、間違っている箇所などあればご指摘お願いします

元の環境

HerokuにDockerコンテナをデプロイして、DBはMySQLでclearDBのアドオンを使用していました。

build:
  docker:
    web: backend/Dockerfile
run:
  web: mkdir -p tmp/pids && mkdir -p tmp/sockets && bundle exec puma -C config/puma.rb

こんな感じでHeroku用のheroku.ymlをアプリケーションのルートに配置することでスムーズにデプロイできました。

詳しいことは次の記事で書いています。

次の環境

Renderのドキュメントを読んでみると、Dockerに対応していそうでした。
https://docs.render.com/docker

ので、やってみる。

Gemfileの設定

gem 'pg'

ポスグレが確か無料だったと思います。これを機にローカルもMySQLのコンテナを無くしてポスグレにしました。
https://docs.render.com/databases

bin/render-build.sh を作る

#!/usr/bin/env bash
# exit on error
set -o errexit

bundle install
bundle exec rake db:migrate

secret_key_baseの設定

credential.yml.encを作成して、secret_key_baseをrenderのSECRET_KEY_BASEに設定しました。

もともと自分は知っていたのでコマンドをピッと実行しましたが、詳しくは次の記事をご覧ください。
DockerでRails動かしている場合は、vimとか使いたい際にインストールしておくのが必要だったと思います。

参考にさせていただきました🙏
https://qiita.com/NaokiIshimura/items/2a179f2ab910992c4d39

config/database.yml をいじる

production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  url: <%= ENV["BACKEND_DATABASE_URL"] %>

DBもrenderで作成したので、passwordとかuserがまとまっているURL1つで設定が完了しました。
もともと user passwordとかを分けて書いていたはず。

環境変数

DBのURLとSECRET_KEY_BASEに加えて、RAILS_ENVをproductionにしました。

デプロイ

こんな感じで設定できたら、renderでDBを作成し、アプリケーションをリリースすることで問題なく動きました 🎉

雑な記事でしたが、どなたかのためになれば幸いです🙏

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1