rails6 Postgresqlを使用するまでの手順

  • 作成日 2020.12.20
  • 更新日 2021.03.12
  • rails
rails6 Postgresqlを使用するまでの手順

rails6で、Postgresqlを使用するまでの手順を記述してます。railsのバージョンは6.1.0です。

環境

  • OS ubuntu20.10
  • ruby 2.7.2
  • rails 6.1.0
  • Postgresql 13.1 (dockerで構築)

Gemfile編集

Gemfileの「sqlite3」をコメントアウトして「gem ‘pg’」を追加します。

# gem 'sqlite3', '~> 1.4'
gem 'pg'

bundle install実行

bundle installを実行します。

bundle install

以下のエラーが出る場合は、Postgresqlの開発ライブラリ「libpq-dev」をインストールしてみて下さい。

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

「libpq-dev」をインストール

sudo apt install libpq-dev

centos7の場合は、以下で解決しました。

sudo yum -y install postgresql-devel

database.yml編集

configディレクトリ配下にある「database.yml」を以下のように編集します。
DBの名前は、任意です。

# SQLite. Versions 3.8.0 and up are supported.
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
#
default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: mebee
  password: password
  host: 0.0.0.0
  timeout: 5000

development:
  <<: *default
  database: sample_development

# 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
  database: sample_test

production:
  <<: *default
  database: sample_production

postgresのportを変更している場合は、以下のようにportを指定します。

default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: mebee
  password: password
  host: 0.0.0.0
  port: 5433(変更したポート番号)
  timeout: 5000

DB作成

以下のコマンドでDBを作成します。

bundle exec rails db:create

DB確認

「sample_development」と「sample_test」が作成されていることが確認できます。