侧边栏壁纸
博主头像
极客日记 博主等级

行动起来,活在当下

  • 累计撰写 93 篇文章
  • 累计创建 17 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

【Ruby on Rails】 Rails常用命令行

Jack.Jia
2022-03-25 / 0 评论 / 0 点赞 / 9 阅读 / 0 字

Rails 命令行

安装 Rails

$ gem install rails

命令

基本 Rails 命令

Rails 开发过程中可以在命令后添加 -h 或–help 用于显示命令的帮助信息. 例如:

$ rails server --help

创建 Rails 程序

初始化一个完整 Rails 可执行项目:

$ rails new appname

使用指定的 Rails 版本生成项目:

$ rails _4.1.6_ new myapp

rails new 命令会默认生成基于 Sqlite 数据库的项目, 生成指定数据库项目可执行如下命令:

$ rails new mysqlp -d=mysql

启动项目 rails server(简写:rails s)

Rails 开发过程中可以对代码实时的改进, 在项目目录下执行此条命令用于启动 Ruby 内建的小型服务器, 每次修改代码后无需重新执行此条命令, 保存文件刷新浏览器页面即可看到改动. 常用 rails server 命令:

$ rails s                 # development模式启动
$ rails s -e production   # production模式启动
$ rails s -p 3333         # 以3333端口启动
$ rails s -u              # 用于debugger调试

执行以上命令后打开浏览器, 访问 http://localhost:3000, 即可看到生成的 Rails 程序. (在常规的 Rails 程序中,URL 的格式是 http://(host)/(controller)/(action),访问 http://(host)/(controller) 会进入控制器的 index 动作。)

rails generate(简写:rails g)

rails generate 命令用于使用模板生成很多东西。单独执行 rails generate 命令,会列出可用的生成器.

$ rails g                                                #查看有哪些生成器
$ rails g controller mycontroller index --no-test-framework   #创建一个控制器
$ rails g model mymodel                                   #创建一个model
$ rails g scaffold HighScore game:string score:integer      #使用脚手架建一个名为“HighScore”的资源,记录视频游戏的最高得分
$ rails g migration add_column_to_table                     #添加自定义的迁移文件

rails console(简写:rails c)

执行 console 命令后,可以在命令行中和 Rails 程序交互。在终端里可以快速测试想法,或者修改服务器端的数据,而无需在网站中操作。 常用命令如下:

$ rails c                        #development模式
$ rails c --sandbox              #沙箱模式 不会修改数据,用于测试代码,读取或修改数据以及读取配置
$ rails c production             #production模式

rails dbconsole(简写:rails db)

rails dbconsole 不仅能检测到你正在使用的数据库类型, 还能理解传入的命令行参数,然后进入该数据库的命令行界面。 该命令支持 MySQL,PostgreSQL,SQLite 和 SQLite3 数据库。

rails runner(简写:rails r)

runner 可以以非交互的方式在 Rails 中运行 Ruby 代码

$ rails r 'Model.long_running_method'               # 执行程序

rails destroy(简写:rails d)

rails destroy 可以理解为 rails generate 的逆操作, 如下所示:

$ rails g model mymodel           #用于创建model
$ rails d model mymodel           #用于删除model

Rake 命令

基础 rake 命令

$ rake --tasks(或rake -T)             #查看所有的rake命令
$ rake -P                             #查看所有rake,不展示描述
$ rake about                          #查看环境相关信息,包括Ruby、RubyGems、Rails 的版本号,Rails 使用的组件,
                                      #程序所在的文件夹,Rails当前所处的环境名,程序使用的数据库适配器,数据库模式版本号
$ rake -W                             #查看rake源码位置,调试很有帮助
$ rake assets:precompile              #预编译app/assets文件夹中的静态资源文件
$ rake assets:clean                   #删除已编译的静态资源
$ rake routes                         #查看现有路由
$ rake secret                         #生成一个用于session secret的随机值
$ rake middleware                     #查看当前环境使用了哪些中间件
$ rake stats                          #生成代码统计
$ rake doc:app                        #在doc/app文件夹中生成程序的文档
$ rake doc:guides                     #在doc/guides文件夹中生成 Rails 指南
$ rake doc:rails                      #在doc/api文件夹中生成 Rails API 文档
$ rake notes                          #会搜索整个程序,寻找以 FIXME、OPTIMIZE 或 TODO 开头的注释
                                      #搜索的文件包括 .builder,.rb,.erb,.haml,.slim,.css,.scss,.js,.coffee,.rake,.sass 和 .less
                                      #搜索的内容包括默认注解和自定义注解
$ rake notes:xxx                      #查找特定的注解,在命令中注解的名字要使用小写形式

tmp: 命名空间下的 rake 命令

$ rake tmp:cache:clear                #清理 tmp/cache 文件夹
$ rake tmp:sessions:clear             #清理 tmp/sessions 文件夹
$ rake tmp:sockets:clear              #清理 tmp/sockets 文件夹
$ rake tmp:clear                      #清理以上三个文件夹
$ rake tmp:create                     #创建会话、缓存、套接字和 PID 所需的临时文件夹
$ rake time:zones:all                 #列出 Rails 能理解的所有时区

db: 命名空间下的命令

$ rake db:create                                #依据DATABASE_URL 或者 config/database.yml 中Rails.env 环境创建database(development 和test)
$ rake db:create:all                            #将创建配置中所有database
$ rake db:drop                                  #依据配置删除数据库(development test)
$ rake db:drop:all                              #删除配置中所有数据库
$ rake db:reset                                 #先drop掉数据库,然后依据schema.rb文件重新生成数据库和表
$ rake db:migrate                               #迁移当前环境的数据库(会调用 db:schema:dump 以更新db/schema.rb)
$ rake db:migrate VERSION=20080906120000        #使当前数据库迁移到指定的版本号,首先判断指定版本号和当前数据库版本号的顺序,然后视情况执行up(change)或者down
$ rake db:migrate:up VERSION=20080906120000     #对指定版本号的migrate执行up操作
$ rake db:migrate:down VERSION=20080906120000i  #对指定版本号的migrate执行down操作
$ rake db:migrate:status                        #查看数据库迁移状态
$ rake db:version                               #查看当前migrate版本号
$ rake db:rollback [STEP=n]                     #对最近的n次migrate执行down操作,不传递STEP的话n是1
$ rake db:seed                                  #加载 db/seeds.rb 文件
$ rake db:setup                                 #基本上等于 db:reset + db:create + db:schema:load + db:seed

测试相关

$ rake db:schema:dump          #基于当前环境数据库, 以ruby的形式, 生成db/schema.rb文件, 另外每次migrate后也会自动调用该任务
$ rake db:schema:load          #加载schema.rb 以格式化当前环境数据库
$ rake db:structure:dump       #基于当前数据库, 以sql的形式, 生成db/structure.sql. 可通过参数指定其他文件: DB_STRUCTURE=db/my_structure.sql
$ rake db:test:load            #基本等同rake db:schema:load 只是会用schema.rb构建测试库
$ rake db:test:clone           #等同于 db:schema:dump 加上 db:test:load , 不会复制数据库中的数据
$ rake db:test:clone_structure #使用的是{rails_env}_structure.sql 而不是schema.rb
$ rake db:test:prepare         #检查开发模式有无pending migrate, 如果有,则停止并且提示,如果没有,则 test:clone_st
0

评论区