对 rails new your_program_name --skip-bundle -d mysql命令的理解

理解如下:

命令:
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数据库


对 rails new your_program_name --skip-bundle -d mysql命令的理解_第1张图片
不带-d mysql

带有-d mysql的选项产生的项目的gemfile展示图,可以看出用自动改用了mysql数据库

对 rails new your_program_name --skip-bundle -d mysql命令的理解_第2张图片
带有-d mysql

2)数据库配置文件config/database.yml发生变化
不带有-d mysql的选项产生的项目的database.yml展示图,可以看出各种环境下默认使用的是sqlit3的配置参数


对 rails new your_program_name --skip-bundle -d mysql命令的理解_第3张图片
不带有-d mysql选项产生的项目的database.yml文件

带有-d mysql的选项产生的项目的database.yml展示图,可以看出各种环境下都使用了mysql的配置参数


对 rails new your_program_name --skip-bundle -d mysql命令的理解_第4张图片
带有-d mysql选项产生的项目的database.yml文件

补充说明:
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,可能这样会产生报错:

对 rails new your_program_name --skip-bundle -d mysql命令的理解_第5张图片
Snip20180131_9.png

这个时候需要从上到下仔细看一下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

对 rails new your_program_name --skip-bundle -d mysql命令的理解_第6张图片
将database.yml文件更换为使用mysql

最好encoding,username,password,host等属性也按照图中设置

然后再依次运行:
rake db:create创建数据库
rake db:migrate迁移文件

你可能感兴趣的:(对 rails new your_program_name --skip-bundle -d mysql命令的理解)