【发布时间】:2014-04-03 03:32:31
【问题描述】:
我使用 Rails Composer 生成了一个框架应用程序并包含 Figaro。它在本地成功运行。在我修改它之前,我将它推送到 Heroku。但是,heroku run rake db:seed 失败了。我发现 app/config/application.yml 是 .gitignored。所以,我需要在运行 heroku run rake db:seed 之前使用 rake figaro:heroku 设置环境变量。但是,rake Figaro:heroku 失败如下:
D:\BitNami\rubystack-2.0.0-11\projects\myapp>rake figaro:heroku
! Usage: heroku config:set KEY1=VALUE1 [KEY2=VALUE2 ...]
! Must specify KEY and VALUE to set.
这看起来只是忽略了我的 app/config/application.yml 并要求向我提供行定向输入,但我不知道。同样,应用程序在本地成功运行,因此 application.yml 应该是正确的。这里是:
MANDRILL_USERNAME: valid.address@gmail.com
MANDRILL_APIKEY: a.valid.apikey
ADMIN_NAME: Admin Name
ADMIN_EMAIL: valid.address@gmail.com
ADMIN_PASSWORD: validpassword
ROLES: [admin, user, VIP]
当我发出 heroku run rake db:seed 时,种子中发生故障。文件是:
puts 'ROLES'
YAML.load(ENV['ROLES']).each do |role|
Role.find_or_create_by_name(role)
puts 'role: ' << role
end
puts 'DEFAULT USERS'
user = User.find_or_create_by_email :name => ENV['ADMIN_NAME'].dup, :email => ENV['ADMIN_EMAIL'].dup, :password => ENV['ADMIN_PASSWORD'].dup, :password_confirmation => ENV['ADMIN_PASSWORD'].dup
puts 'user: ' << user.name
user.confirm!
user.add_role :admin
第一次访问变量角色时失败,因为 ENV['ROLES'] 未初始化。它将由 application.yml 初始化,并且是本地的,但它是 .gitignored。因此,rake Figaro:heroku 需要成功。
这看起来很简单,尤其是它在本地运行流畅。 OBTW,我已经尝试了如图所示的 application.yml 并使用双引号括起来的字符串,但它似乎在任何情况下都没有什么不同,所以......
想法?谢谢...
【问题讨论】:
标签: ruby-on-rails ruby heroku rake