Cloud9の開発環境のデータベースをPostgreSQLに変更する方法をご紹介します。
前提として、すでにMysqlやSqliteでアプリケーションを開発しており、Postgresqlに乗り換えることを想定しています。
少し実情を話しますと、僕の通っているプログラミングスクールでは、導入コストの低さから開発環境はMysql、本番環境はPostgresqlを利用するカリキュラムでした。
しかし、環境ごとにデータベースが違うと不整合が起きてしまうことを体験したので、今回の試みをすることとなりました。
【Rails】データベースの型の変更・置き換え(Postgresql)
それでは、コマンド中心に全てのステップを紹介します。
PostgreSQLをインストール
sudo yum install postgresql postgresql-server postgresql-devel postgresql-contrib
PostgreSQLを初期化
sudo service postgresql initdb
PostgreSQLのを起動
sudo service postgresql start
Gemfileを編集
↓変更前
gem 'mysql2'
↓変更後
gem 'pg'
database.ymlの編集
mysqlとpostgresqlはadapter, encoding, username
がそれぞれ違うので要注意です。
↓変更前
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
host: localhost
↓変更後
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: postgres
password:
host: localhost
データベース作成
rails db:create
マイグレーション適用
rails db:migrate
これでバッチリマイグレーションが適用できれば完了です。
お疲れ様でした!
参考
cloud9上でrailsのデータベースをsqliteからpostgresqlにする方法はありますか?
PostgreSQL セットアップからDBの作成&削除まで