下記の記事を参照にさせていただきながら行ったメモの内容となります。
動作確認環境
- Windows10(x64)
- Rails 6.1.7.3
- Ruby 3.0.4p208
Gemfile編集
gem ‘pg’ を追記し、既存のgem ‘sqlite3’, ‘~> 1.4’ を消去する
上記の状態で、プロジェクトのルートディレクトリでbundle installを実行します
config\database.yml編集
ローカル環境にPostgresをインストールした際の情報を★★★★★の箇所にあてはめつつ以下のような感じで編集します
# 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: ★★★★★
password: ★★★★★
host: ★★★★★
port: ★★★★★
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
上記の状態で、ルートディレクトリでbundle exec rails db:createを実行します
参考;
https://railsdoc.com/page/rails_db_create
https://qiita.com/windhorn/items/0f58866291f8273f18fb
確認
ローカルのpgAdminを開いてみると、下記のようにDBが作成されています。
rails s でサーバーを起動してみます。
立ち上がったので問題ないように思います
rails new でもpostgressを設定できる
rails new でも使用するDBを指定してプロジェクトを作成できます。以下の内容で試してみました。
動作確認環境
- Windows10(x64)
- Rails 6.1.7.4
- Ruby 3.0.4p208
rails new {プロジェクト名} -d postgresql のようにコマンドを入力します。
※謝ってコマンドを打ってしまったときにInvalid value for –database option. Supported preconfigurations are: mysql, postgresql, sqlite3, oracle, sqlserver, jdbcmysql, jdbcsqlite3, jdbcpostgresql, jdbc.と出てきたので、postgresqlの他にもoracleとかsqlserverも使えるみたいです。
その後bundle install –path vendor/bundleを実行し、config\database.ymlの★★★★★をPostgresをインストールしたときの情報を見ながら適宜修正し、bundle exec rails db:createを実行します。
default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see Rails configuration guide
# https://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: ★★★★★
password: ★★★★★
host: ★★★★★
port: ★★★★★
development:
<<: *default
database: sample_2_development
test:
<<: *default
database: sample_2_test
production:
<<: *default
database: sample_2_production
username: sample_2
password: <%= ENV['SAMPLE_2_DATABASE_PASSWORD'] %>
rails s で起動し、http://127.0.0.1:3000/へアクセスするとエラーとかは表示されず下記のようになったので問題ないように思います