'ruby on rails'에 해당되는 글 1건

  1. 2013.03.08 루비온레일즈(RubyOnRails) sqllite에서 MySql로 변경하려면

지금 하고 있는 프로젝트에서 필요할것 같아 메모형식으로 남겨둔다.


레일즈에서 처음 어플리케이션을 생성할 때 아래와 같은 옵션으로 지정하면 데이터베이스가 MySql을 사용하도록 만들어 준다. 별도의 지정을 하지 않으면 sqllite로 생성된다.


$ rails new 어플리케이션명 -d mysql

또는, 

$ rails new 어플리케이션명 --database=mysql


만약 이미 프로젝트를 시작했고 어느정도 개발된상태에서 데이타를 바꾼다면 레일즈는 간단히 데이타베이스를 변경할 수 있다.

데이타의 구성, 그리고 변경이력등이 클래스로 관리되기 때문에 데이타베이스에 의존하지 않는다.


먼저 database.yml를 열어 설정을 변경하자.


database.yml


development:

  adapter: mysql2

  encoding: utf8

  database: test_development

  pool: 5

  username: root

  password:

  socket: /tmp/mysql.sock



설정전 파일내용.sqllite로 설정되어 있음



그리고 아래의 명령어(rake)를 실행하여 변경내용을 반영한다.


$ rake db:create



당연히 에러가 발생.

원인은 잼이 설치되어 있지 않단다.


rake aborted!

Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (mysql2 is not part of the bundle. Add it to Gemfile.)


MySql을 사용하기 위한 gem을 설치하자.

그러기 위해선 gemfile을 열어 편집해야 한다.

(*참고로 #는 주석처리이다.)


#gem 'sqlite3'

gem 'mysql2'


gem파일을 수정했으니 다시 번들 인스톨을 실행한다.


$ bundle install


다시 데이타베이스를 생성하고..


$ rake db:create

 

그리고 마이그레이션을 실행한다.


$ rake db:migrate


정상적으로 메세지가 출력되면 데이타베이스 변경완료.

역시 루비라는 생각이 들 정도로 간단하다.



Posted by 악당잰 트랙백 0 : 댓글 0

댓글을 달아 주세요