» 首頁 » 討論區 » Ruby on Rails »Ruby on Rails 連結MAMP的MySQL教學

Ruby on Rails 連結MAMP的MySQL教學

發表人: Seachaos
積分: 2432
發表時間: 2015-09-03 23:42:09
Mac要先安裝Mysql (透過brew),指令如下:
[sea:linuxCode]
brew install mysql
[/sea]

再來是安裝mysql的gem,進到目錄下編輯Gemfile,加入這行
[sea:linuxCode]
gem 'mysql2'
[/sea]

然後
[sea:linuxCode]
bundle install
[/sea]

可以先到MAMP的phpMyAdmin建立好一個資料庫和User來使用
(MAMP預設的phpMyAdmin位置是 http://localhost:8888/phpMyAdmin/ )

參考以下步驟
Image
然後建立使用者
Image


接下來是回到Rails

建立個測試用的Model (終端機指令輸入如下)
[sea:linuxCode]
rails g model member account:string password:string name:string email:string
[/sea]

可以看見Rails的異動如下:

[sea:linuxCode]
invoke active_record
create db/migrate/20150831180104_create_members.rb
create app/models/member.rb
invoke test_unit
create test/models/member_test.rb
create test/fixtures/members.yml
[/sea]


最後是設定 config/database.yml ,將原來的 sqlite改成mysql
註:MAMP或是某些特別的的MySQL需要另外設定Socket (重要)
MAMP的MySQL Socket預設是在 /Applications/MAMP/tmp/mysql/mysql.sock

database.yml範例:
[sea:linuxCode]
… (略)
default: &default
adapter: mysql2
encoding: utf8
database: test_001
host: localhost
username: test_001
password: **************
socket: /Applications/MAMP/tmp/mysql/mysql.sock

development:
<<: *default
# database: db/development.sqlite3
… (略)
[/sea]

請注意yml的縮排很嚴格,上面的縮排是用二個空白
然後所有的 sqlite有關的全部注解掉 ( yml中的#是註解) ,例如
[sea:linuxCode]
test:
<<: *default
# database: db/test.sqlite3

production:
<<: *default
# database: db/production.sqlite3
[/sea]


然後試看看建立db,輸入
[sea:linuxCode]
rake db:migrate
[/sea]


如果沒有錯誤,再到phpMyAdmin就會看到Ruby on Rails幫我們建立的Table 了 :)

同步發表於程式植物園