rake 命令整理

作者:周星 发布:2015-04-27

1. rake -T

打印所有可用的任务及其描述

2. --trace 参数

打印出完整的执行堆栈

3. rake about

打印出应用程序的 ruby 版本、rails 版本、gem 版本、rails 组件、应用程序路径、当前环境、数据库、js runtime、数据库 schema 版本,它非常有用尤其当你不熟悉系统的时候。

4.assets 相关

rake assets:precompile

编译静态资源文件

rake assets:clean

删除旧版本的 assets

rake assets:clobber

完全删除 public/assets

5. db相关

rake db:migrate VERSION=1

很多人理解错了这个命令,以为它是只执行 version 为1 的 migration,但其实它是执行所有 version 为 1 之前的 migration。

rake db:rollback

回滚上一次 migration

rake db:rollback STEP=3

回滚前三次 migration

rake db:migrate:redo STEP=3

重新执行前三次 migration

rake db:setup

创建数据库,load schema 并使用 seed 数据初始化

rake db:reset

重新执行 db:setup,如果有些 migration 无法回滚,则 reset 也无法达到回滚目的,它实际上执行了两个命令 db:drop 和 db:setup

rake db:migrate:up VERSION=1

只执行 version 为 1 的 migration

rake db:migrate:down VERSION=1

只回滚 version 为 1 的 migration

rake db:seed

根据 db/seeds.rb 文件初始化数据库数据

6. doc

rake doc:app

生成应用程序的文档,生成后的文件在 doc/app 文件夹

rake doc:guides

生成 Rails 的文档,生成后的文件在 doc/guides 文件夹

rake doc:rails

生成 Rails Api 文档,生成后的文件在 doc/api 文件夹

7. rake notes

rake notes 会搜索项目后缀为 .builder, .rb, .rake, .yml, .yaml, .ruby, .css, .js 和 .erb 的文件,将其中注释为 FIXME/OPTIMIZE/TODO 的注释打印到屏幕上,并包括文件名和所在行数,这个功能让我觉得 rails 将细节做到了极致,通过配置 config.annotations.register_extensions 还可以增加其它后缀的文件

config.annotations.register_extensions("scss", "sass", "less") { |annotation| /\/\/\s*(#{annotation}):?\s*(.*)$/ }

输出指定注释比如 FIXME

rake notes:fixme

输出自定义的注释,比如BUG

rake notes:custom ANNOTATION=BUG

默认情况下 rake routes 命令只会搜索 app/config/lib/test 文件夹,想把其它文件夹加入进来,需要使用 SOURCE_ANNOTATION_DIRECTORIES 参数,然后用逗号分隔需要加入的文件夹

➤ export SOURCE_ANNOTATION_DIRECTORIES='spec,vendor'
➤ rake notes

8. rake routes

打印应用程序所有的路由

9.tmp 相关

Rails.root/tmp 目录如同 *nix /tmp 目录一样用来保存临时文件,比如 sessions(如果配置 session 保存在文件系统)/进程ID/缓存

rake tmp:cache:clear 清除 tmp/cache.rake tmp:sessions:clear 清除 tmp/sessions.rake tmp:sockets:clear清除 tmp/sockets.rake tmp:clear clears 清除 cache, sessions 和 sockets.rake tmp:create为 sessions, cache, sockets, 和 pids.创建 tmp 目录

10.自定义 rake 任务

关于自定义 rake 任务之前我们有一次比较详细的分享,您可以点击此处查看

还有一些第三方 gem 支持的 rake 命令,这里不一一阐述,如果您对本文有什么意见或建议,请联系博主。

支付宝扫码赞助博主


评论(0)