开发人员有权删除数据库,但不能重新创建数据库。在处理rake
任务时,他意外地运行了整个rake
套件,其中包括销毁开发数据库但没有适当的权限来重新创建和填充它。
我怎样才能确保不再发生这种情况?在Rails应用程序中是否有某种方法来覆盖运行rake
,以便它不执行一堆未指定的任务?
开发人员正在寻找任务列表,并认为运行rake
会提供该列表,类似于运行rails
本身发出指示的方式。
我知道rake
有一个binstub,但我真的不知道如果我弄乱那里的东西会发生什么。
这种情况有什么好的解决方案吗?
答案 0 :(得分:0)
设置默认任务? IIRC,在namespace
区块之外:
task :default => "something_that_doesnt_destroy_the_world"
答案 1 :(得分:0)
从Dave的回答和另一个SO问题(再次找不到链接)中记下,这里是如何覆盖Rails 4中的默认rake
任务。
# lib/tasks/default.rake (name is not important)
namespace :override do
task :default do
puts "This is now the default rake task executed via 'rake'"
end
end
# Remove default task and switch to above (still in same file)
task(:default).clear.enhance ["override:default"]
在终端:
$ rake
/lib/tasks/default.rake: this is now the default 'rake' task
如果有“更干净”或更“传统”的Rails方式,任何人都欢迎大声喊出来。这是我能找到的“最干净”的解决方案。