Ruby on Rails의 DB를 MySQL로 바꾸어 보았습니다.
이번에는 Ruby on Rails의 DB를 기본 SQLite에서 MySQL로 변경하는 방법을 소개합니다.
처음부터 MySQL의 DB를 사용한다고 결정해 앱을 만드는 경우는, ↓의 기사를 참고로 해 보세요.
어쨌든 해보자!
하는 것은 두 가지입니다.
config/database.yml
)을 다시 씁니다.그렇다면
config/database.yml
를 즉시 편집하십시오.# 編集前
default: &default
adapter: sqlite3
pool: 5
timeout: 5000
development:
<<: *default
database: db/development.sqlite3
# 編集後
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:
host: localhost
development:
<<: *default
database: development
그리고 MySQL을 설치하기 위해 GemFile을 편집합니다.
# 編集前
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# 編集後
# Use mysql2 as the database for Active Record
gem 'mysql2'
그런 다음
bundle install
에서 MySQL을 설치합니다.뭔가 에러가 나오면 이쪽 기사 를 참고해 보세요.
$ bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/............
# 省略
Bundle complete! 15 Gemfile dependencies, 62 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
잘 설치할 수 있었습니다.
그럼 어플을 기동해…라는 것은 좀 더 참아, 그 전에 MySQL의 서비스를 기동하지 않으면 안 되는 것 같습니다.
그렇지 않으면, 「Mysql2::Error
그렇다면
sudo service mysqld start
명령으로 MySQL 서비스를 시작합니다.※ 이것도 sudo 붙이지 않으면 「Permission denied」라고 화났다…
$ sudo service mysqld start
Initializing MySQL database: Installing MySQL system tables...
# 省略
Please report any problems at http://bugs.mysql.com/
[ OK ]
Starting mysqld: [ OK ]
서비스가 시작되면 이번에는 DB를 만듭니다.
DB를 만들지 않고 앱을 시작해도 "ActiveRecord::NoDatabaseError Unknown database 'development'"라는 화를 낼 뿐입니다.
rails db:create
명령으로 config/database.yml
에 쓰여진 내용으로 DB가 만들어집니다.$ rails db:create
Created database 'development'
그리고 드디어 앱을 시작합니다.
$ rails server
=> Booting Puma
=> Rails 5.0.7.2 application starting in development on http://localhost:8080
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.4 (ruby 2.6.3-p62), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:8080
Use Ctrl-C to stop
할 수 있었던 것 같습니다!
그럼~
Reference
이 문제에 관하여(Ruby on Rails의 DB를 MySQL로 바꾸어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MORITAKENTARO/items/68a0b9234bfd42abdac7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)