Gemfile
에 mysql2
잼을 추가 해주자.
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
마지막으로 .gitignore
에 application.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 데이터 로드