vdeep

*

vdeepはプログラミング、IT、Web技術、ライフハックの事などなどを管理人okutaniがつぶやくブログです

【Heroku】PostgreSQLのプランを変更する方法

   

LINEで送る
Pocket


こんにちは、okutani(@okutani_t)です。本記事では、「Herokuで利用しているPostgreSQLのDBのプランを変更する方法」について解説しています。

今回はコスト削減のため、Hobby Basic(有料プラン)からHobby Dev(無料プラン)に変更する手順について記述しています。

ほぼ同じ手順でHobby Dev -> Hobby Basicのアップグレードもおこなえるかと思います。

それでは、PostgreSQLのプランを変更する方法について見ていきましょう。

参考Upgrading the Version of a Heroku Postgres Database | Heroku Dev Center

スポンサーリンク

新しいDBを追加

今回は無料プランに移行するので、Heroku管理画面から「Hobby Dev」を追加します。

「Overview」→「Configure Add-ons」を選択。

「postgres」などで検索して、追加したいプランを選択し「Provision」をクリック。

もしくは、以下のコマンドを入力して追加してもOKです。

$ heroku addons:create heroku-postgresql:hobby-dev --app アプリ名

これで新規DBが追加されました。

DB情報の確認

以下のコマンドで既存のDBと新規のDBの詳細を表示できます。

$ heroku pg:info --app アプリ名

今回は「HEROKU_POSTGRESQL_BROWN_URL(Hobby Basic, 既存のDB)」と「HEROKU_POSTGRESQL_YELLOW_URL(Hobby Dev, 新規のDB)」が確認できました。

こちらのURLをそれぞれメモしておきます(環境によって、URL名は違う場合があるのでそれぞれ読み替えてください)。

メンテナンスON

以下のコマンドでアプリケーションをメンテナンス画面に変更。

$ heroku maintenance:on --app アプリ名

以下のようにメンテナンス状態に切り替わりました。

DBの移行作業を進めていきます。

旧DBから新DBにデータ移行

旧DBから新DBにデータを流し込みます。

一応、現在のDBのバックアップを取っておきましょう。

$ heroku pg:backups capture --app アプリ名

もしくは、Heroku管理画面上で「Heroku Postgres」→「Durability」→「Create Manual Backup」から手動でバックアップを取ることもできます。

それでは、以下のコマンドで旧DBのデータを新DBにコピーします。「DATABASE_URL」の箇所は置換せずそのまま利用してください。

$ heroku pg:copy DATABASE_URL 新DB --app アプリ名

実際には以下のようなコマンドになります。適宜「HEROKU_POSTGRESQL_YELLOW」の箇所を適宜書き換えてください

$ heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_YELLOW --app アプリ名

上記のコマンドを実行すると、アプリ名を入力するように促されるので、入力してEnter。

実際にコピーできているか、Heroku管理画面、もしくは先ほどのpg:infoコマンドで確認しておきましょう。

$ heroku pg:info --app アプリ名

次に、実際にアプリが参照するDBを変更します。

新規DBに切り替え

アプリケーションがアクセスするDBを新規のDBに変更します。「HEROKU_POSTGRESQL_YELLOW」の箇所は適宜書き換えてください。

$ heroku pg:promote HEROKU_POSTGRESQL_YELLOW --app アプリ名

pg:infoコマンドで確認。利用したいDB(新規のDB)に「DATABASE_URL」と書いてあることを確認できればOKです。

$ heroku pg:info --app アプリ名

これで参照するDBが切り替わりました。

メンテナンスOFF

メンテナンスをOFFにします。

$ heroku maintenance:off --app アプリ名

これでメンテナンスを解除できます。

あとは何かしらDBに書き込む処理をおこなってみて、新プランの方のDBに書き込まれているのを確認できればOKですね。

参考になれば幸いです。

LINEで送る
Pocket

okutani (okutani_t) のヒトコト
Herokuは柔軟にプランの変更ができるので便利ですね。今回コストカットにもなってよかったです。

Web開発のお仕事を募集しています

フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。

Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。

ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。

LINKお問い合わせ

LINKokutani's Portfolio


 - Heroku, PostgreSQL

スポンサーリンク

PC用AdSense

PC用AdSense

  こちらもどうぞ

vdeepのトップページへ戻る画像です。風船の形をした島を女の子が掴んでいます。