Rails 에서 MySql을 사용하기 위한 database.yml 셋업

rails·2021년 9월 1일
0

시행착오

목록 보기
4/7
post-custom-banner

Gemfilemysql2 잼을 추가 해주자.

gem 'mysql2', '~> 0.5.3'

bundle install로 설치 한다.

config/database.yml 파일을 작성 한다.

default: &default
  adapter: mysql2
  encoding: utf8mb4
  database: myapp_development
  username: <%= ENV.fetch("RAILS_DB_USERNAME") %>
  password: <%= ENV.fetch("RAILS_DB_PASSWORD") %>
  host: 127.0.0.1
  port: 3306
  flags:
    - -COMPRESS
    - FOUND_ROWS
    - MULTI_STATEMENTS
  secure_auth: false

development:
  <<: *default
  database: myapp_development

test:
  <<: *default
  database: myapp_test

production:
  <<: *default
  database: myapp_production

데이터베이스의 계정 정보는 Git과 같은 소스코드 관리툴에 넣으면 안되기 때문에 환경변수로 빼두었다.
환경변수 선언은 application.yml 에 해두자.

RAILS_DB_HOST: localhost
RAILS_DB_USERNAME: myapp_db_user
RAILS_DB_PASSWORD: A!d3v_2Ggs24

해당 yml을 로드 하도록 config/application.rb 에 아래 코드를 추가 해준다.

module MyApp
  class Application < Rails::Application
    config.load_defaults 5.2
    
    config.before_configuration do
      env_file = File.join(Rails.root, 'config', 'application.yml')
      YAML.load(File.open(env_file)).each do |key, value|
        ENV[key.to_s] = value
      end if File.exists?(env_file)
    end
  end
end

마지막으로 .gitignoreapplication.yml라인을 추가 하자.

세팅은 이상으로 완료 되었다. 아래 명령어를 조합해 작업 하면 되겠다.
rake db:create : DB생성
rake db:drop : DB삭제
rake db:reset : DB리셋
rake db:migrate : DB 마이그레이션 실행

추가적으로 yaml_db잼을 설치 한다면 아래 명령어도 사용 가능하다.
rake db:data:dump : DB 데이터 백업
rake db:data:load : DB 데이터 로드

profile
rails
post-custom-banner

0개의 댓글