はじめに
herokuで運営しているサービス(https://moook.herokuapp.com/)の本番環境のデータを開発環境に反映させたときの手順をメモφ(..)
前提
環境
今回の手順を行った環境は下記の通りです。
title | memo |
---|---|
Production環境 | heroku |
Rails | ver 5.1.2 |
DB | postgresql |
手順
herokuでDBのバックアップを実行
herokuにログインした状態で下記コマンドを実行します。
rem バックアップ取得コマンド $ heroku pg:backups:capture Starting backup of postgresql-asymmetrical-20043... done Use Ctrl-C at any time to stop monitoring progress; the backup will continue running. Use heroku pg:backups:info to check progress. Stop a running backup with heroku pg:backups:cancel. Backing up DATABASE to b002... done
最後の行にある'b002'という文言が、バックアップの目印になります。
バックアップファイルをダウンロードする。
rem 先程取得したバックアップのURLを取得 $ heroku pg:backups:url b002 https://xfrtu.s3.amazonaws.com/6026beb4-c189-4732-b78b...
取得したURLにブラウザからアクセスするとバックアップファイルをダウンロード出来ます。
バックアップを開発環境のDBにリストア
下記コマンドを使って開発環境に本番環境DBのバックアップをリストアします。
下記のような実行結果になればOK。
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U user_name -d db_name backup_file_path 省略 pg_restore: setting owner and privileges for INDEX "public.taggings_idx" pg_restore: setting owner and privileges for INDEX "public.taggings_idy" pg_restore: setting owner and privileges for FK CONSTRAINT "public.favorites fk_rails_72d9d9e5bf" pg_restore: setting owner and privileges for FK CONSTRAINT "public.favorites fk_rails_d15744e438"
title | memo |
---|---|
user_name | DBのユーザー名※1 |
db_name | 対象のDB名※2 |
backup_file_path | バックアップファイルのパス |
※1:DBのユーザー名の確認方法
rails db
コマンドを実行し、posgresqlから下記コマンドを実行して確認
$ rails db $ db_name=# SELECT usename FROM pg_user; usename --------- UserName (1 row)
※2:DB名の確認方法
database.yml
でdatabase
の項目を確認
database.yml
development: <<: *default database: appname_development
参考
以上