SyntaxHighlighter

2012年3月22日木曜日

Herokuの共有DB(Postgres)の内容をローカルのPostgresにPushする

tapsを使うことで、可能となるのだ!
ちなみに今回はOSXの雪豹でやりました。WindowsはTapsのインストールで断念した(笑)

まずはtapsをインストール
gem install taps

次にHerokuからDBをPullします。その際sqlite形式で落としました。
アプリ名を聞かれるのでそのままアプリ名を入力してください。
heroku db:pull sqlite://20120312.sqlite

PULLが完了したので、ローカルのPostgresにPushするのですが、
sqlite形式で落としたためtapsを中継サーバとして利用します。
Push先のPostgresサーバを指定して、tapsサーバを起動。
最後のパラメータのユーザ/パスワートは今立ち上げたtapsサーバのものですので
適当なものでオッケーです。
taps server postgres://postgres_id:postgres_password@localhost/database_name taps_user taps_password

あとは、sqlite形式のデータをtaps経由でいれるだけです。
上記コマンドはフォアグラウンドでサーバ起動していますので別のコンソールを開いて作業した方が簡単でしょう。
というわけで新しいコンソールで以下を実行
taps push sqlite://20120312.sqlite http://taps_user:taps_password@localhost:5000

エラーがでなければ完了です♪

参考

herokuで使用しているDBのデータをエクスポートしてローカルのDBにインポート
ほとんどまんまですね。感謝!

0 件のコメント:

コメントを投稿