※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
SQLiteでは本番環境に適していない
前回まででAWSの設定までした
今回は、デプロイに適したデータベースサーバーを用意する
これまで使ってきたSQLiteは、本番環境には向かない(SQLの中でも小さいから)
レコード数、ユーザーからのアクセス数が増えたときにSQLiteは難しい
これまではRailsの中にアプリケーションサーバーとデータベース(SQLite)があった
→デプロイするなら、Railsの外にデータベースサーバーを用意する必要がある
PostgreSQL(ポストグレスレスキューエル、ポスグレ)をインストールしていく
PostgreSQLのインストール(Mac)
以下の手順でインストールする
# インストール
brew install postgresql
# バージョンが表示されていれば、インストール完了
postgres --version
# => postgres (PostgreSQL) 14.13 (Homebrew)
# 初期化
initdb /usr/local/var/postgres -E utf8
# pcを起動するたびにデータベース・サーバーを起動する
pg_ctl start -D /usr/local/var/postgres
# => server started
Gemfileを開く
PostgreSQLを使うためのライブラリ(Gem)を入れる
sqlite3
を削除して、代わりにgem 'pg' '>= 0.18', '< 2.0'
を追加する
# Use sqlite3 as the database for Active Record
# ↓削除する
gem 'sqlite3', '1.5.0'
# ↓追加する
gem 'pg', '>= 0.18', '< 2.0'
インストールする
bundle install
config/database.ymlを開く
sqlite3の設定が書いてあるので、すべて消す
以下のコードを書く
default: &default
adapter: postgresql
encoding: unicode
pool: 5
timeout: 5000
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: blogapp_development
test:
<<: *default
database: blogapp_test
production:
<<: *default
database: blogapp_production
username: blogapp
password: <%= ENV['DATABASE_PASSWORD'] %>
host: <%= ENV['DATABASE_HOST'] %>
覚えるのは難しいけど、「PostgreSQLを使う」と最初に設定していれば、Railsが勝手に作ってくれる
(なにもしなくてもSQLite3のファイルを作ってくれたみたいに)
rails db:create
# => Created database 'blogapp_development'
# => Created database 'blogapp_test'
rails db:migrate
rails db:seed
これでPostgreSQLが使えるようになる
注意すること
- データベースサーバーを起動すること
→pg_ctl start -D /usr/local/var/postgres
- データベースを作って「
db:create
」から、「db:migrate
」を実行する
SQLiteに慣れていると忘れがちなので、上記に注意すること!
#DAY26