【Heroku】JawsDBのアップグレード。Multi TenantからSingle Tenantに変更
HerokuのJawsDBのプランを「Leopard Shared」から「Whitetip」に変更したい。
ただ今回のようにMulti Tenant(Leopard Sharedなど)からSingle Tenant(Whitetipなど)に変更する場合に、Add-onsのページからプラン変更ができなかったのでその方法をメモしていきます。
目次
JawsDBをアップグレードする方法
HerokuのAdd-ons上でMulti TenantからSingle Tenantへプラン変更しようするとエラーがでてしまいます。
なのでMulti TenantからSingle Tenantに変更したい場合は、新しく別のJawsDBをインストール必要があります。(Add-onsにJawsDBが2つある状態になる)
▼普通にプラン変更しようとすると表示されるエラー
Item could not be updated:
An error was encountered when contacting the add-on partner to change to jawsdb:whitetip: Cannot automatically move between Shared and single-tenant plans. See documentation. https://devcenter.heroku.com/articles/jawsdb#migrating-between-plans
手順①:新しいJawsDBをインストールする
JawsDBを再度インストールし、その際に「Add-on plan」をSingle Tenantのプランに変更して作成しましょう。
手順②:「古いJawsDB」から「新しいJawsDB」へデータ移行する
DBを新しく作ったので、まだ新しい方のDBは何も入っていない状態になっています。なので今まで使っていた古いDBから新しいDBにデータ移行する必要があります。
そのためには⑴古いDBからsqlファイルをエクスポートして、⑵新しいDBへそのsqlファイルをインポートする、という手順になります。
Herokuの環境変数を新しいDBに切り替える
SettingsのConfig Varsに記載しているデータベースの環境変数(DB_HOST、DB_PASSWORDなど)を書き換えましょう。
まとめ
HerokuのJawsDBの中でも安いプランを使ってAPIを作っていたのですが、すぐにDBのアクセス回数上限に達して500エラーになることが頻発していたので遂にアップグレードに踏み切りました。
「新しくDBを作ってデータ移行する」というのは少し面倒ではありますが、特に難しい作業はなかったので意外とすんなりアップグレードすることができました。これでやっとAPIがたくさん使える!!