railsアプリのDB変更手順

こんにちは!kossyです!




アマゾンジャパンが中小店舗向けのQRコード決済事業に参入とのニュースがでてました。
headlines.yahoo.co.jp

今後の動向に目が離せませんね!





さて、今回は既に作成済みのRailsアプリのDB変更手順をブログに残したいと思います。



1. gemfileを編集
デフォルトだと大体9行目にdbのバージョン指定の記述があるので、その行を編集。
(例)

gem 'mysql2', '>= 0.4.4', '< 0.6.0' => gem 'pg', '>= 0.18', '< 2.0'

2. database.ymlファイルの編集
(例)

default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password:
  socket: /tmp/mysql.sock

development:
  <<: *default
  database: アプリ名_development

test:
  <<: *default
  database: アプリ名_test

production:
  <<: *default
  database: アプリ名_production
  username: アプリ名
  password: <%= ENV['アプリ名_DATABASE_PASSWORD'] %>

以下に変更

default: &default
  adapter: postgresql
  encoding: unicode

  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: アプリ名_development


test:
  <<: *default
  database: アプリ名_test

production:
  <<: *default
  database: アプリ名_production
  username: アプリ名
  password: <%= ENV['アプリ名_DATABASE_PASSWORD'] %>

3. bundle install
もしかしたら、pg(又はmysql)なんてないよ、と怒られるかもしれないので、

brew install postgresql(又はmysql)

をして、ダウンロードが終了したら、

psql --version(mysql -v)

コマンドを実行して、バージョンが表示されるか確認してみてください
mysqlの場合はそのままmysqlにログインすることがあるので、その場合はexitで退出しましょう。

また、

An error occurred while installing pg (1.1.0), and Bundler cannot continue.
Make sure that `gem install pg -v '1.1.0' --source 'https://rubygems.org/'` succeeds before bundling.

と怒られた時は、

`gem install pg -v '表示されたバージョン

と実行してください。

4 .rails db:create rails db:migrate
こちらのコマンドを実行してエラーが起きなければ、移行は成功です。


参考にさせていただいた記事
https://qiita.com/pchatsu/items/a7f53da2e57ae4aca065