heroku / データベースのアップグレード

Shunsuke Sawada

herokuのデータベースが10,000行を超えてしまったので、$9/month の有料プランにしました。Hobby Basic は制限が10,000,000行なので、当分は大丈夫でしょう。
  

アドオン追加

データベースのアップグレードは、単純にプランを変更するというのではなく、新しいDBのアドオンを追加して、そのDBに引っ越すという感じです。なので、新しくアドオンを追加します。

1
$ heroku addons:add heroku-postgresql:hobby-basic

  

データ移行

新しいデータベースが作成されるので、古いデータベースからデータを移動させます。といってもherokuコマンドが面倒をみてくれます。HEROKU_POSTGRESQL_COLORが新しいDBだとすると下記のように。
現在のアプリのDATABASE_URLからHEROKU_POSTGRESQL_COLOR_URLへ、データを移行してくれます。

1
heroku pgbackups:transfer HEROKU_POSTGRESQL_COLOR_URL

  

デフォルトのDBを変更

新しい方のDBをプライマリーDBに設定。

1
heroku pg:promote HEROKU_POSTGRESQL_COLOR

  

アプリのコード変更

最後に、config/database.ymlを変更すればOK。ポートが変わってるかもしれないから、気をつけてね、ということです。

ruby
1
2
3
4
5
6
7
8
9
10
production:
  adapter: postgresql
  encoding: utf8
  port: 5432
  pool: 25
  database: xxx
  password: xxx
  username: xxx

  
参考:Using PG Backups to Upgrade Heroku Postgres Databases

34
Shunsuke Sawada

おすすめの記事

Rails whereの検索で否定を使う
3
Railsを4.2にバージョンアップしたら、Vagrantのローカル開発環境にアクセスできなくなった問題
Railsのバリデーションエラー後にレイアウトが崩れるとき