为什么rake db:migrate:reset未在rake -T中列出?


72

为什么没有列出某些耙任务rake -T?喜欢db:migrate:reset吗?我可以毫无问题地执行它,但是为什么没有列出它呢?有没有办法获得耙任务的真实完整列表?

百分比-T
(在/ home / zeus / projects / my_project中)
谈论#列出所有Rails框架和环境的版本
rake db:create#从config / database.yml中为当前Rails.env创建数据库(使用db:create:all在配置中创建所有数据库)
rake db:drop#删除当前Rails.env的数据库(使用db:drop:all删除所有数据库)
rake db:fixtures:load#将灯具加载到当前环境的数据库中。
rake db:migrate#迁移数据库(选项:VERSION = x,VERBOSE = false)。
rake db:migrate:status#显示迁移状态
rake db:rollback#将模式回滚到以前的版本(指定步骤w / STEP = n)。
rake db:schema:dump#创建一个db / schema.rb文件,该文件可移植到AR支持的任何数据库中
rake db:schema:load#将schema.rb文件加载到数据库中
rake db:seed#从db / seeds.rb加载种子数据
rake db:setup#创建数据库,加载模式,并使用种子数据进行初始化(使用db:reset首先也删除db)
rake db:structure:dump#将数据库结构转储到SQL文件中
rake db:version#检索当前模式版本号
rake doc:app#为该应用程序生成文档-也可用doc:rails,doc:guides,doc:plugins(选项:TEMPLATE = / rdoc-template.rb,TITLE =“自定义标题”)
rake erd#根据您的模型生成一个实体关系图
rake log:clear#将log /中的所有* .log文件截断为零字节
rake中间件#打印出您的Rack中间件堆栈
rake notes#枚举所有注释(使用notes:optimize,:fixme,:todo作为焦点)
rake notes:custom#枚举自定义注释,并使用ANNOTATION = CUSTOM指定
rake rails:template#应用LOCATION = / path / to / template提供的模板
rake rails:update#从Rails更新配置和公共/ javascript(或仅使用update:javascripts或update:configs)
rake route#用名称匹配的顺序打印所有已定义的路由。
rake secret#生成密码学安全的密钥(通常用于生成cookie会话的密钥)。
rake spec#运行spec目录中的所有规范(不包括插件规范)
rake spec:acceptance#在spec / acceptance中运行代码示例
rake spec:controllers#在spec / controllers中运行代码示例
rake spec:helpers#在spec / helpers中运行代码示例
rake spec:lib#在spec / lib中运行代码示例
rake spec:mailers#在spec / mailers中运行代码示例
rake spec:models#在spec / models中运行代码示例
rake spec:rcov#使用rcov运行所有规格
rake spec:requests#在spec / requests中运行代码示例
rake spec:routing#运行spec / routing中的代码示例
rake spec:views#在spec / views中运行代码示例
rake stats#来自应用程序的报告代码统计信息(KLOC等)
rake test#一起运行test:units,test:functionals,test:integration(也可用:test:benchmark,test:profile,test:plugins)
rake test:recent#运行最近测试:准备/测试最近的更改
rake test:uncommitted#运行针对uncommittedtest:prepare的测试/测试自上次签入以来的更改(仅Subversion和Git)
rake time:zones:all#显示所有时区,也可用:time:zones:us,time:zones:local-使用OFFSET参数过滤,例如OFFSET = -6
rake tmp:clear#从tmp /清除会话,缓存和套接字文件(窄w / tmp:sessions:clear,tmp:cache:clear,tmp:sockets:clear)
rake tmp:create#为会话,缓存,套接字和pid创建tmp目录

当我运行rake -T时,它显示...您正在运行什么导轨?
thatmiddleway

我使用rails 3.0.1。在具有两个不同项目的两个不同系统上。它不会在两个系统上都显示(请参阅编辑后的帖子的完整输出)。
Zardoz

Answers:



63

您还可以rake db -T -A用来显示所有任务,甚至是未注释的任务。作为参考,这些开关在执行以下操作:

-T, --tasks [PATTERN]    Display the tasks (matching optional PATTERN) with 
                         descriptions, then exit.
-A, --all                Show all tasks, even uncommented ones (in combination 
                         with -T or -D)

3
注意,-A(或--all)选项在耙10加
懒熊

1
rake -T -A显示所有任务。rake -T db -A显示了包含所有任务db的任务名称(附注位置db -T)。
艾略特·赛克斯

也适用于Capistrano 3:cap -T rails -A
Koen。

41

您可以rake -P | grep rake用来显示所有Rake任务的名称。


这正是我所需要的。我以别名“ raket”将其添加到我的bash_profile中:#显示所有可用的rake任务,包括没有描述的任务。alias raket =“ rake -P | grep rake”效果很好。谢谢!
唐·费尔克

8

作为ThomasObermüller回答的后续措施,由于-T标志采用位置参数,因此仅获取“ db”名称空间任务(至少对于rake 10.0.3而言),您需要执行以下操作: rake -T db -A



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.