陈斌彬的技术博客

Stay foolish,stay hungry

Rake 和 Rake 命令简介

Rake(http://rake.rubyforge.org) 是一门构建语言,和 make(www.gnu.org/software/make/) ant(http://ant.apache.org)很相象。Rake是用 Ruby 写的,它支持它自己的 DSL 用来处理和维护 Ruby 应用程序。Rails 用 rake 的扩展来完成多种不同的任务。下面的一些在 Rails 用的最多的 Rake 任务。 可以通过在你的 rails 程序的根目录运行 rake -T 得到一个完整的任务列表。

  • rake: 运行 rake 不跟任何参数将根据 migrations 来重建测试数据库,并且运行 test 目录下所有的单元测试,功能测试和整合测试
  • rake db:migrate: 更新当前环境的数据库到最新的版本。你可以指定目录版本通过在命令后加上 VERSION=X.
  • rake db:sessions:create: 在数据库中创建一个表用来存储用户会话数据。Rails 会自动为每一个用户分配 session cookie 用来跟踪用户。会话机制非常有用象用户认证。
  • rake db:sessions:clear: 清除 sessions 表。在规则的时间间隔运行这个命令用来阻止表的大小增长过快。每一个访问应用程序的用户都会导致在sessions表中增加一条记录。
  • rake log:clear: 截断应用程序日志目录中的日志文件。就象 sessions 数据,日志文件也会变的非常大,所以最好是时而不时的清除它们。
  • rake rails:freeze:gems: 锁定 rails 应用程序 rails gem 版本到最新版本。如果没有运行这个命令(或 rake rails:freeze:edge) 你的应用程序的 gem 版本会在最新版本和旧版本上浮动,这会导致向后兼容的问题,如果rails的代码改变了。
  • rake rails:freeze:edge: 和 rake rails:freeze:gem 相似,为了区分它将 rails 代码锁定在最新版本。rails 代码被拷到应用程序 vendor/rails 目录中。
  • rake rails:unfreeze: 中断上面描述的两个 freeze 命令创建的应用程序和 rails 版本的的连接。
  • rake stats: 输出你应用程序的有用的统计,包括代码行和代码测试的比率。