【发布时间】:2012-12-17 09:18:04
【问题描述】:
我刚刚将一个 Sinatra 应用部署到 heroku,该应用包含两个 rake 任务:
task :create_db , [:db_id , :db_name]
task :destroy_db , [:db_id, :token]
当我跑步时
heroku run rake -T
在控制台中,Heroku 打印以下响应:
(in /app)
rake create_db[db_id,db_name] # Creation count database task
rake destroy_db[db_id,token] # Destroy database task
但是当我跑步时:
heroku run rake create_db['test', 'test database']
它响应以下错误:
(in /app)
rake aborted!
Don't know how to build task 'create_db[test,'
/usr/local/lib/ruby/1.9.1/rake.rb:1720:in `[]'
/usr/local/lib/ruby/1.9.1/rake.rb:2040:in `invoke_task'
/usr/local/lib/ruby/1.9.1/rake.rb:2019:in `block (2 levels) in top_level'
/usr/local/lib/ruby/1.9.1/rake.rb:2019:in `each'
/usr/local/lib/ruby/1.9.1/rake.rb:2019:in `block in top_level'
/usr/local/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/local/lib/ruby/1.9.1/rake.rb:2013:in `top_level'
/usr/local/lib/ruby/1.9.1/rake.rb:1992:in `run'
/usr/local/bin/rake:31:in `<main>'
我不太确定为什么会失败,但我的猜测是它与字符串参数有关。正如你在上面看到的,它说“不知道如何构建任务'create_db [test',测试显示没有字符串。
知道如何让这个任务从命令行运行吗?
【问题讨论】:
-
这绝对是字符串参数的问题。我已将它作为 create_db[test,test-db] 传递,它可以工作......显然字符串参数不能在 Heroku 上使用。