ローカルdbのデータをherokuのリモートdbへ入れるコマンド

昨日ローカルdbの内容からシードデータを作成し、リモートへデータを追加しようとしたのですが、問題がいくつかあり別の方法で行いました。

その方法について書いておきます!

シード作るよりかなり簡単でした!

 

 

方法

ローカルdbの内容をherokuのリモートdbへ入れるコマンド

以下のコマンドでローカルのdbの内容をリモートのdbへ移すことができます。

heroku pg:push ローカルdb リモートdb --app アプリ名

 

 

本番データをローカルへ持ってくる heroku pg:pull リモートdb名 ローカルdb --app アプリ名 のコマンドと組み合わせれば、マスターで動いているdbの内容をステージングで動いているdbへ移すことも簡単でした!!!

 

注意点

リモートのdbにすでにデータが入っているときは以下の警告が出ます。

Remote database is not empty. Please create a new database or use heroku pg:reset

そのときは、警告にも書いてあるようにheroku pg:resetを実行してdbをリセットしてあげます。

 

 

感想その他

はじめ、昨日の日記にも書いたのですが、seed_dumpというgemを使ってシードデータを作成し、リモートでそのシードデータを入れる作業をしようと思っておりました。

しかし、これだとgitリポジトリにシードデータを載せる事になってしまいます。

あまり載せたくない情報があったり、データ量が大きい時にはなるべく避けたいところです。

(テストデータを作りたい時には適しているのかもしれません)

 

おそらくこれからも、herokuのデータを移す必要に迫られることがあると思うので、覚えておこうと思います!!

 

 

追記

ツイッターで知ったみんチャレというアプリで「ブログ毎日書くチーム」に入ったのでこれから毎日書いていきたいと思います!

 

 

参考文献

 

devcenter.heroku.com