行動すれば次の現実

ほどよくモダンなシステム開発を目指しています。メインテーマは生産性、Ruby、Javascriptです。

【超簡単】HerokuのpostgresDBを別環境にコピーする方法

本番環境のDBをステージング環境などにまるっとコピーする方法をまとめる。

前提条件

  • S3バケットを持っていること
  • b002というバックアップデータをprod-appからstg-appにデータをコピーするストーリーになっています

1. コピー対象のバックアップを取る

下記コマンドでDBのバックアップデータを作成する

heroku pg:backups:capture -a prod-app

2.バックアップデータをローカルにダウンロードする

heroku pg:backups:download b002 -a prod-app

3.S3バケットにバックアップデータをアップロードする

  • 署名付きURLを発行する or データをそのまま公開してしまう

4.コピー先のDBを初期化する

heroku pg:reset DATABASE -a stg-app

5.コピーを実行する

heroku pg:backups:restore 'アップロードしたS3のURL' DATABASE_URL -a stg-app

6.S3からdumpを削除する

  • 本番データの場合は削除しておきましょう

以上。