理解如下:
命令:
rails new your_program_name --skip-bundle -d mysql
是用来创建rails项目的命令
其中:
rails new your_program_name
是用来新建rails项目的,
your_program_name指代的是你想要创建的rails项目的名称,比如可以设定为blog,那么就会创建一个blog项目。
其后面的--skip-bundle -d mysql
是可选项:
(1)skip bundle
skip bundle的意思是跳过自动执行bunlde install
,这样有个好处是,你可以进入项目,打开gemfile文件,然后修改:
source 'https://rubygems.org'
可以换成:
source 'https://gems.ruby-china.org/'
这样的话可以通过国内的gem镜像文件来下载gem并安装,就可以不用翻墙了。
(2)-d mysql
-d mysql的意思是使用mysql数据库,rails项目默认使用的是sqlite3数据库,通过-d mysql就可以改成用mysql数据库了。
使用-d mysql会产生两处变化:
1)gemfile文件发生变化
下面分别是不带-d mysql和带有-d mysql选项产生的项目的gemfile文件展示图:
不带有-d mysql选项产生的项目的gemfile展示图,可以看出用的是sqlite3数据库
带有-d mysql的选项产生的项目的gemfile展示图,可以看出用自动改用了mysql数据库
2)数据库配置文件config/database.yml发生变化
不带有-d mysql的选项产生的项目的database.yml展示图,可以看出各种环境下默认使用的是sqlit3的配置参数
带有-d mysql的选项产生的项目的database.yml展示图,可以看出各种环境下都使用了mysql的配置参数
补充说明:
1.使用skip bundle跳过自动执行bundle install
时,要写成--skip-bundle
,不能写成--skip bundle
或--skip -bundle
以及其他错误写法,否则该选项是无效的,仍然会自动执行bundle install
2.有时在新建一个项目时,我们并不需要一些gem,但rails会默认自带一些gem,而根据项目的需求,其中的一些gem是我们不需要的,这时候我们可以用skip来忽略安装一些gem,来让我的项目看起来更加整洁。
例如:
如果你新建一个blog个项目,但不想要使用puma这个gem,那么可以使用--skip-puma选项,在终端item输入指令rails new blog --skip-puma
就可以了。
如果你新建一个blog项目,想跳过自动执行bundle install
,也不想要puma和spring这两个gem,需要使用mysql数据库,那么你可以在终端item输入指令rails new blog --skip-bundle --skip-puma --skip-spring -d mysql
3.使用-d mysql时,运行bundle install
,可能这样会产生报错:
这个时候需要从上到下仔细看一下item的报错日志,发现通过执行
brew install mysql
更新homebrew,然后再次执行
bundle install
就可以正常安装mysql2这个gem了。
4.如果你在终端使用命令来创建项目的时候没有使用-d mysql,那么后面要使用mysql数据库时,需要做两处修改,分别是:
(1)在gemfile中添加
- gem 'sqlite3'
+ gem 'mysql2', '>= 0.3.18', '<0.5'
然后终端运行:
bundle install
(2)修改database.yml
将其中使用到sqlite3数据库的部分替换为使用mysql
最好encoding,username,password,host等属性也按照图中设置
然后再依次运行:
rake db:create
创建数据库
rake db:migrate
迁移文件