ローカルのデータベースをherokuにリストアする

テスト環境でデータもつくってしまって、本番環境にあげたいなんてこともあります。
すぐ忘れるのでメモしておこう。ドキュメント通り。

追記 2015/0613
Herokuのpg backupが新しくなりました。

Developers are required to use the new backup system and associated commands. The new commands can be found in the Heroku Postgres namespace in the CLI instead of a separate add-on. A mapping document has been created to ease the transition from the add-on to the new system.

詳しくはこちらですが、
大きな違いとしては、 pgbackupsheroku pg:backups となってます。
下記の記事のコマンドも修正しました。

また、リストアする際に、-t オプションをつけることで、
特定のテーブルだけリストアできてましたが、今回からできなくなりました。

restoreすると全部のテーブルがごっそり消えます。
お気をつけてー。

ダンプ

まず手元のデータベースをダンプする必要がある。

1
 PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump

mypassword データベースのパスワード
myuser ユーザー名
mydb データベース名
mydb.dump ダンプのファイル名

アップロード

herokuからアクセスできるところに置きましょう。
レンタルサーバーでもいいし、Amazon S3とかでもいい。

リストア

あとはそのパスを指定するだけ。

古いやり方

ruby
1
# heroku pgbackups:restore DATABASE 'https://s3.amazonaws.com/me/items/xxxxx/mydb.dump'

  
新しいやり方

1
heroku pg:backups restore 'https://s3.amazonaws.com/xxxxxx/mydb.dump' DATABASE_URL

  
DATABASE_URLは heroku config を打つとでてくるあれです。
実際のURLでなく DATABASE_URL のままでOKでした。

これでリストア完了。サクッといきますね。
以上です。

何かありましたらコメントをどうぞ

comments powered by Disqus

人気の記事

950 Points チリ出身のギタリストが弾くドラゴンボールZがむちゃくちゃかっこいい…
774 Points Wordpress + Heroku + PostgreSQL + Amazon S3 = ¥0 / 無料でサイト運営
700 Points Rubyのチートシート 変数 / クラス / モジュール
524 Points Rubyのチートシート / アクティブサポート
451 Points 紙のデザイナーがウェブ開発できるようになるまでに必要なこと
435 Points Rails / Google Analyticsのデータを使って分析や管理画面のためのグラフをつくる
323 Points RailsとHerokuでノーティフィケーションをプッシュする / PusherとTurbolinksの兼ね合い
222 Points Rails / RSpec テスト書いたことない メンドクサイ(n´Д`)という時のチートシート
193 Points Rails / Ajaxを使って画面遷移しない一時保存機能をつける
193 Points Protractorでスクレイピングしてみた