LoginSignup
4
4

More than 5 years have passed since last update.

herokuのPostgreSQLからvps管理のMySQLに移行する

Posted at

最初に素早く作って素早く公開したアプリがherokuでPostgreSQLを使っていたが、データベースの無料枠を超えてしまって、herokuに課金し続けてとくに問題ない日々を過ごしていたが、アプリを気軽にどんどん増やす環境を作っておきたかったのでアプリ毎に課金する必要が出るのは避けたくなった。

なのでvpsを契約してmysql(いつも使っているので使いやすいため)に移行する方法。RDS使うようにしようって時にもやり方特に変わらんと思う。

tapsを使う。

gem install taps
taps server mysql://{移行先user}:{移行先pass}@{移行先host}/{移行先database}?encoding=utf8 {一時的なuser} {一時的なpass}
taps push postgres://{移行元user}:{移行元pass}@{移行元host}/{移行元database} http://{一時的なuser}:{一時的なpass}@localhost:5000

taps server mysql://myaamori@dondondo-natu/musashino-animeshion?encoding=utf8 shiro bako
taps push postgres://yano@youkan/musashino-animeshion http://shiro:bako@localhost:5000

とかとか。

最初は自分のlocal環境のmysqlに入れて試して、問題なかったのでmysql_dumpでsql出して移行先に入れた。だけど一旦localに入れる必要はなかったと思う。encodingの指定しないと文字化けするっぽい。

postgresの指定はheroku configDATABASE_URLの設定そのままでいける。herokuコマンドでtaps使ってるっぽいので割と信頼できる。

あとはアプリのdb接続をmysqlにしたり念のための確認やらバックアップやりなんやらをしておいて

heroku maintenance:on
heroku config:add DATABASE_URL=mysql://{移行先user}:{移行先pass}@{移行先host}/{移行先database}
heroku maintenance:off

でオッケー

vps管理になるので監視とか最適な設定とか必要になるでしょうのでそこら辺は別途いい感じにしましょう。RDSにしたほうが金余分にかかるけど全く意識しないメリットデカイのでそっちでもいいかなぁとか考えたり。

参考 : 手軽にPostgreSQLからMysqlへデータを移行する - mat_akiの日記

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4