理解如下:
命令:
rails new your_program_name --skip-bundle -d mysql
是用來創(chuàng)建rails項(xiàng)目的命令
其中:
rails new your_program_name
是用來新建rails項(xiàng)目的秩仆,
your_program_name指代的是你想要?jiǎng)?chuàng)建的rails項(xiàng)目的名稱樱蛤,比如可以設(shè)定為blog,那么就會(huì)創(chuàng)建一個(gè)blog項(xiàng)目殃姓。
其后面的--skip-bundle -d mysql
是可選項(xiàng):
(1)skip bundle
skip bundle的意思是跳過自動(dòng)執(zhí)行bunlde install
翔冀,這樣有個(gè)好處是导街,你可以進(jìn)入項(xiàng)目,打開gemfile文件纤子,然后修改:
source 'https://rubygems.org'
可以換成:
source 'https://gems.ruby-china.org/'
這樣的話可以通過國內(nèi)的gem鏡像文件來下載gem并安裝搬瑰,就可以不用翻墻了。
(2)-d mysql
-d mysql的意思是使用mysql數(shù)據(jù)庫控硼,rails項(xiàng)目默認(rèn)使用的是sqlite3數(shù)據(jù)庫泽论,通過-d mysql就可以改成用mysql數(shù)據(jù)庫了。
使用-d mysql會(huì)產(chǎn)生兩處變化:
1)gemfile文件發(fā)生變化
下面分別是不帶-d mysql和帶有-d mysql選項(xiàng)產(chǎn)生的項(xiàng)目的gemfile文件展示圖:
不帶有-d mysql選項(xiàng)產(chǎn)生的項(xiàng)目的gemfile展示圖卡乾,可以看出用的是sqlite3數(shù)據(jù)庫
帶有-d mysql的選項(xiàng)產(chǎn)生的項(xiàng)目的gemfile展示圖翼悴,可以看出用自動(dòng)改用了mysql數(shù)據(jù)庫
2)數(shù)據(jù)庫配置文件config/database.yml發(fā)生變化
不帶有-d mysql的選項(xiàng)產(chǎn)生的項(xiàng)目的database.yml展示圖,可以看出各種環(huán)境下默認(rèn)使用的是sqlit3的配置參數(shù)
帶有-d mysql的選項(xiàng)產(chǎn)生的項(xiàng)目的database.yml展示圖幔妨,可以看出各種環(huán)境下都使用了mysql的配置參數(shù)
補(bǔ)充說明:
1.使用skip bundle跳過自動(dòng)執(zhí)行bundle install
時(shí)鹦赎,要寫成--skip-bundle
谍椅,不能寫成--skip bundle
或--skip -bundle
以及其他錯(cuò)誤寫法,否則該選項(xiàng)是無效的古话,仍然會(huì)自動(dòng)執(zhí)行bundle install
2.有時(shí)在新建一個(gè)項(xiàng)目時(shí)毯辅,我們并不需要一些gem,但rails會(huì)默認(rèn)自帶一些gem煞额,而根據(jù)項(xiàng)目的需求,其中的一些gem是我們不需要的沾谜,這時(shí)候我們可以用skip來忽略安裝一些gem膊毁,來讓我的項(xiàng)目看起來更加整潔。
例如:
如果你新建一個(gè)blog個(gè)項(xiàng)目基跑,但不想要使用puma這個(gè)gem婚温,那么可以使用--skip-puma選項(xiàng),在終端item輸入指令rails new blog --skip-puma
就可以了媳否。
如果你新建一個(gè)blog項(xiàng)目栅螟,想跳過自動(dòng)執(zhí)行bundle install
,也不想要puma和spring這兩個(gè)gem篱竭,需要使用mysql數(shù)據(jù)庫力图,那么你可以在終端item輸入指令rails new blog --skip-bundle --skip-puma --skip-spring -d mysql
3.使用-d mysql時(shí),運(yùn)行bundle install
掺逼,可能這樣會(huì)產(chǎn)生報(bào)錯(cuò):
這個(gè)時(shí)候需要從上到下仔細(xì)看一下item的報(bào)錯(cuò)日志吃媒,發(fā)現(xiàn)通過執(zhí)行
brew install mysql
更新homebrew,然后再次執(zhí)行bundle install
就可以正常安裝mysql2這個(gè)gem了吕喘。
4.如果你在終端使用命令來創(chuàng)建項(xiàng)目的時(shí)候沒有使用-d mysql赘那,那么后面要使用mysql數(shù)據(jù)庫時(shí),需要做兩處修改氯质,分別是:
(1)在gemfile中添加
- gem 'sqlite3'
+ gem 'mysql2', '>= 0.3.18', '<0.5'
然后終端運(yùn)行:
bundle install
(2)修改database.yml
將其中使用到sqlite3數(shù)據(jù)庫的部分替換為使用mysql
最好encoding募舟,username,password闻察,host等屬性也按照?qǐng)D中設(shè)置
然后再依次運(yùn)行:
rake db:create
創(chuàng)建數(shù)據(jù)庫
rake db:migrate
遷移文件