HerokuのDBをPostgreSQLからMySQLに変更する
Railsでアプリ作ってて、デフォルトのPostgreSQLを使ってたけど
中身をSequelで見たいなあと思ったのでPostgreSQLからMySQLに変更することにした。
ググったらたくさん記事が出てくるからラクショーじゃん!と思っていたけどかなり時間がかかってしまったし、
次も同じ目に遭いそうだなと思ったのでメモ。
Gemfileにmysqlを追加する
#gemfile gem 'mysql2', '~> 0.3.20'
database.ymlの設定を変更する
#database.yml default: &default adapter: mysql2 pool: 5 timeout: 5000 development: <<: *default adapter: mysql2 database: appname_development pool: 5 timeout: 5000 # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: <<: *default production: <<: *default adapter: mysql2 pool: 5 timeout: 5000
bundle install
する
$ bundle install
ここでGemfile.lockに差分ができるので、Gemfileとともにコミットする。
私はこれをやってなくて2日くらい悩んでいた。なんと無駄な・・・
うまくいったらHerokuにpushする。
HerkouのアドオンにClearDBを追加する
$ heroku addons:add cleardb
もしかしたらアプリ名指定しろよって言われるかも?
DATABASEの設定を削除する
$ heroku addons:destroy heroku-postgresql -a appname
ググった時に出てくる記事だとheroku addons:detach DATABASE -a appname
でもいいっぽいのだけど、それだとなぜか通らなかった。
destroyだといけた。
アプリの名前入れてくれーって言われるので入れてあげると削除してくれる。
DATABASE_URLをCLEARDATABASE_URLのものに書き換える
$ heroku config:set DATABASE_URL='mysql2://xxxxx?reconnect=true' --app appname
mysql
を mysql2
に変えることを忘れずに。
いちおうdb:migrate
してheroku open
する
$ rails db:migrate
$ heorku open
おわり。
大変だった…また次もつまづきそうだ…