経緯
Djangoプロジェクトのデプロイにherokuを活用しています。
さいきんMacを買い換えたので、heroku CLIが入っていない状態から、Postgreのインスタンス(herokuだとAddOnですかね)をグレードアップした時の履歴と簡単解説メモです。
hobby-dev 無料 レコード数:1万(ここから)
hobby-basic 9ドル/月 レコード数:1000万(こちらへアップグレード)
環境
MacOS Mojave
手順
手順1:heroku CLI導入
$brew install heroku/brew/heroku
$heroku login
手順2:herokuのプロジェクトを確認
$heroku list
=== ****@gmail.com Apps
****1
****2
****3
****4
これでアプリ名がわかりました。
手順3:
手順2で調べた対応するアプリ名を"<アプリ名>"に置き換えてください。
アプリ名は、"****1"とかのことです。
//アプリの状況チェック
$heroku pg:info -a <アプリ名>
//新規データベースインスタンス生成
$heroku addons:create heroku-postgresql:hobby-basic -a <アプリ名>
↑で出てくる環境変数名"HEROKU_POSTGRESQL_******_URL"はすぐあとで使います。
//DBが壊れないように?一時稼働停止
$heroku pg:wait -a <アプリ名>
//プロジェクトのメンテナンスモードをONにする
$heroku maintenance:on -a <アプリ名>
次がちょっとだけ注意です。既存データベースの情報を新データベースにコピペするコマンドです。
//既存データベースの情報を新データベースにコピペ
$heroku pg:copy DATABASE_URL as HEROKU_POSTGRESQL_******_URL -a <アプリ名>
↑の環境変数名の"******"の部分が見た記事と違っていたので、そのままコピペをするとダメですので、環境変数名チェックをしてコピペをカスタムするのが必要です。
//新規DBにDjangoプロジェクトを接続。
$heroku pg:promote HEROKU_POSTGRESQL_******_URL -a <アプリ名>
//接続確認
$heroku pg:info -a <アプリ名>
//メンテナンスモード解除
$heroku maintenance:off -a <アプリ名>
参考になった記事
Heroku CLIの導入と初期設定
https://blog.katsubemakito.net/macos/setup_heroku-cli
Heroku操作 CLI
https://qiita.com/ntkgcj/items/9e812220881d671b6bff
herokuのpostgresqlをアップグレードする
https://qiita.com/ozepon/items/6cc30737e96f01b4da67
Heroku の PostgresQL を無料の hobby-dev から 9ドル/月の hobby-basic にアップグレードする【LGTMoon】
https://www.utakata.work/entry/20190226/1551145958