ローカル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のデータを移す必要に迫られることがあると思うので、覚えておこうと思います!!
追記
ツイッターで知ったみんチャレというアプリで「ブログ毎日書くチーム」に入ったのでこれから毎日書いていきたいと思います!
参考文献