Ruby on Rails

Rails database를 PostgreSQL로 설정하는 방법

juyeong.lee 2020. 3. 18. 00:52
반응형

Rails의 기본 database는 sqlite3 이다.

새로운 Rails 프로젝트를 postgresql로 생성하는 명령어는

$ rails new [프로젝트이름] --database=postgresql

을 입력하면 된다.

그리고 database.yml 파일에

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: postgres
  password: [postgres 설치 시 입력한 비밀번호]
  port: 5432

default 부분에 username, password, port를 추가해줘야 한다.

password는 postgresql 설치 시 입력한 비밀번호,

port는 postgresql 설치 시 입력한 port 번호로, 수정하지 않았다면 5432다.


그러면 기존에 sqlite3 등 다른 database를 사용하다가 postgresql로 변경할 때는?

Gemfile에 postgres gem을 추가해줘야 한다.

gem 'pg'

bundle install도 빼먹지 말자.

그리고 database.yml도 변경해줘야 한다.

default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000
  username: postgres
  password: [postgres 설치 시 입력한 비밀번호]
  port: 5432

development:
  <<: *default
  database: db/myproject_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: db/myproject_test

production:
  <<: *default
  database: db/myproject_production

sqlite3 부분을 postgresql로 변경하고, development, test, production database 이름도 바꿔주었다.

default 부분은 위와 동일하게 username, password, port를 추가해준다.

반응형