[heroku]HerokuのclearDBとPostgresでのインポートとエクスポートまとめ
herokuのmysqlとpostgresqlのDBのインポートエクスポートメモ。
heroku上のDBの中身を別のheroku上のDBへ移行するという前提。
入れ替える情報
項目 | 内容 | 例(clearDB) | |
---|---|---|---|
USER_NAME | ユーザー名 | b114d7xxxxxxxb | | |
PASSWORD | パスワード | d81xxxxb | | |
HOST | ホスト名 | us-cdbr-iron-xxxx-xx.cleardb.net | | |
DB_NAME | DB名 | heroku_5f996e9xxxxxxxx | |
アプリを指定して実行する場合は、すべてのコマンドのお尻に、--app app_name
とつける。
ClearDB(mySql)
情報の構成
環境変数にて取得可能な情報より。
CLEARDB_DATABASE_URL=mysql://ユーザ名:パスワード@サーバ名/データベース?reconnect=true
エクスポート
$ mysqldump -uUSER_NAME -pPASSWORD -h HOST -r backup.sql --single-transaction DB_NAME
インポート
$ mysql --host=HOST --user=USER_NAME --password=PASSWORD --reconnect DB_NAME < backup.sql
参考
ClearDB から Azure VM 上の MySQL に移行 | プログラミング生放送
mysql – Dump sql file to ClearDB in Heroku – Stack Overflow
Heroku Postgres
概要
Heroku Postgresに標準搭載されているPG Backups
を使用します。
エクスポート
バックアップを取る
$ heroku pg:backups capture
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.
DATABASE ---backup---> b002
URLを取得する
$ heroku pg:backups public-url b002
The following URL will expire at 2015-09-10 07:33:23 +0000:
"https://xfrtu.s3.amazonaws.com/a53f7aa...."
ここで取得したS3のURLを、S3_URL
とする。
(ダウンロードする場合は以下)
$ curl -o latest.dump 'S3_URL'
インポート
$ heroku pg:backups restore 'S3_URL' DATABASE_URL
ローカルのDBにインポートする場合
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U ユーザー名 -d DB名 バックアップファイル
参考
Importing and Exporting Heroku Postgres Databases with PG Backups | Heroku Dev Center
Heroku PGBackups | Heroku Dev Center