Ruby Rake任务简介(转)

RakeMakeAnt

Rake的意思是Ruby Make,一个用ruby开发的代码构建工具。Rake的英文意思是耙子,一种很朴实的劳动工具。真的是很贴切,Rake正是一个功能强大、勤勤恳恳的劳动工具。

但是,为什么Ruby需要Rake

Ruby代码不需要编译,为什么需要Rake?其实,与其说Rake是一个代码构建工具,不如说Rake是一个任务管理工具,通过Rake我们可以得到两个好处:

  1. 以任务的方式创建和运行脚本
    当然,你可以用脚本来创建每一个你希望自动运行的任务。但是,对于大型的应用来说,你几乎总是需要为数据库迁移(比如Rails中db:migrate任务)、清空缓存、或者代码维护等等编写脚本。对于每一项任务,你可能都需要写若干脚本,这会让你的管理变得复杂。那么,把它们用任务的方式整理到一起,会让管理变得轻松很多。
  2. 追踪和管理任务之间的依赖
    Rake还提供了轻松管理任务之间依赖的方式。比如,“migrate”任务和“schema:dump”任务都依赖于 “connect_to_database”任务,那么在“migrate”任务调用之前,“connect_to_database”任务都会被执行。

在哪里可以获得Rake

Rake的主页是在http://rake.rubyforge.org/,在这里你可以获得Rake的简单介绍,API以及一些有用文档的链接。可以在http://rubyforge.org/frs/?group_id=50获得最新版的Rake,在作者写作时,最新版本是0.7.3。

Rake脚本编写 一个简单脚本

Rake的脚本相当简单,下面用一个例子进行说明。假设你是一个勤劳的家庭型程序员,在周末你打算为你的家人做一些贡献。所以你为自己制定了三个任务:买菜、做饭和洗衣服。打开你的文本编辑器,创建一个名叫rakefile的文件(Rake会在当前路径下寻找名叫Rakefile、rakefile、RakeFile.rb和rakefile.rb的rake文件),并输入如下内容:

打开命令行工具,进入这个文件所在目录,然后运行下面的命令,大致应该类似如下结果:

继续阅读

rails rake db:migrate说明

命令 rake db:migrate 作用 将所有未实施的迁移任务都实施到目标数据库上。

命令 rake db:migrate VERSION=编号 作用 指定migrate执行的版本,可用于撤销迁移任务

db:migrate的迁移版本信息可以在所创建的数据库下schema_info表中查看到相关记录信息(这里的记录是migrate的动作版本,也就是db/migrate文件夹下面的文件是否执行过,如果把某条version删除的话,那么这条记录就认为是没有执行过的)。

rake的db任务通常都使用rake db:migrate来升级数据库。实际上,在刚刚开始工作的时候,还可以通过

来创建需要的数据库,而不需要通过mysql界面来手工创建。如果的你的默认环境设置为development,可以不额外指定环境。如果想生成其他环境的,可以修改RAILS_ENV参数到对应的值,如“production”。

继续阅读