事前準備
remoteオプションを追加する
--remote staging
--remote production
のようなオプションで、Staging環境とProduction環境を使い分けられるようにしておきます。
詳細は以下のブログ記事を参照してください。
PG Backupsアドオンを追加する
Staging, ProductionともにHerokuのPG Backupsアドオンを追加します。(無料)
手順
PG Backupsのcaptureとrestoreを使って、データをトランスファーします。
間違って逆方向にコピーしたりしないよう、二人で作業することを推奨します。
# サイトにメンテナンスモードに変更
$ heroku maintenance:on --remote staging
$ heroku maintenance:on --remote production
# Staging環境のバックアップ状況を確認
$ heroku pgbackups --remote staging
# Staging環境のデータをコピー(バックアップ)
$ heroku pgbackups:capture --remote staging
# バックアップが増えたことを確認
$ heroku pgbackups --remote staging
# Staging => Productionへのコピー(リストア)を実施
$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --remote staging` --remote production
# Production環境に接続してデータがちゃんとコピーされたことを確認
$ heroku console --remote production
# サイトのメンテナンスモードを解除
$ heroku maintenance:off --remote production
$ heroku maintenance:off --remote staging
参考
PG Backupsのコマンドマニュアル
https://devcenter.heroku.com/articles/pgbackups