rails 프로젝트 생성및 mysql 연동 ruby on rails

기본적인 프로젝트생성은

1. rails new 프로젝트명 --skip-bundle
    ex) rails new project 

2. Gemfile 수정 - gem 'therubyracer' 활성화

이상태에서는 rails에서 지원하는 sqlite db를 쓰게 된다 

mysql db를 사용하여 프로젝트를 사용하고 싶으면 파일을 수정해주어야한다.

-Gemfile 파일 수정

gem 'sqlite3' 을 지우거나 주석처리하고 

gem 'mysql2', '~> 0.3.18' 을 추가한다 

bundle install 명령어 입력

mysql2 의경우 최신버전은 호환성의 문제로 실행이 안되므로 0.3.18버전을 추천한다.

-database.yml 파일 수정

  development:
    adapter: mysql2
    encoding: utf8
    database: 데이터베이스이름
    pool: 5
    username: root
    password:
    socket: /var/lib/mysql/mysql.sock
 
  test:
    adapter: mysql2
    encoding: utf8
    database: 데이터베이스이름
    pool: 5
    username: root
    password:
    socket: /var/lib/mysql/mysql.sock
 
  production:
    adapter: mysql2
    encoding: utf8
    database: 데이터베이스이름
    pool: 5
    username: root
    password:
    socket: /var/lib/mysql/mysql.sock

database 에서 각각 환경에 따른 데이터 베이스 이름을 입력하고
username 에서는 사용하는 mysql id를 입력하고 비밀번호가 있다면 password 도 입력해준다.
ps. password 입력시 첫번째는 특수문자를 넣으면 접근이 안된다. 버전에 따라 되는 경우도 있을지도 모른다.

이렇게 수정작업을 거쳐야 연동이 되지만 프로젝트 생성에서 database.yml를 mysql에 맞게 세팅해주는 명령어가 있다.

rails new 프로젝트명 -d mysql --skip-bundle

뒤의 --skip-bundle을 추가한 이유는 Gemfile을 수정하고 bundle 인스톨을 하기위해서 이다.
이 과정에서 Gemfile에서 gem 'mysql2', '~> 0.3.18' 을 추가하고, gem 'therubyracer' 활성화 후 bundle install을 해준다.

이제 연동된 mysql db를 사용하면 된다.

ex) 
rake db:create
rails g scaffold test value:integer
rake db:migrate


덧글

댓글 입력 영역