rake assets:预编译RAILS_ENV =生产错误

时间:2016-03-16 20:17:00

标签: ruby-on-rails heroku spree

我想将一个狂欢应用程序部署到heroku,为了做到这一点,我需要在本地预编译我的资产 我做了

module.exports = {
    get: function(req, res){
        //some code here
        _.map(req.query.data, function (val, key) {
            //come code here
        });
        //some code here
        async.parallel([......])


        re.send(.....)   
    }
}

然后我添加了config / application.rb

heroku addons:create heroku-postgresql 

我的database.yaml文件是

config.assets.initialize_on_precompile = false

每当我跑

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5

development:
  <<: *default
  host: localhost
  database: anzels_development
  username: anzels
  password: 1234

test:
  <<: *default
  host: localhost
  database: anzels_test
  username: anzels
  password: 1234


production:
  adapter: postgresql
  encoding: unicode
  database: anzels_production
  pool: 5
  password:

我收到错误 耙子流产了!

sumeet@sumi-pc:~/anzels$ rake assets:precompile RAILS_ENV=production

配置/ enviormenr.rb

ActiveRecord::NoDatabaseError: FATAL:  role "sumeet" does not exist
/home/sumeet/anzels/config/environment.rb:5:in `<top (required)>'
PG::ConnectionBad: FATAL:  role "sumeet" does not exist
/home/sumeet/anzels/config/environment.rb:5:in `<top (required)>'
Tasks: TOP => environment
(See full trace by running task with --trace)

请帮助

2 个答案:

答案 0 :(得分:2)

在您尝试运行的本地计算机中

  

rake assets:预编译RAILS_ENV =生产

但是这需要你的本地计算具有config / database.yml和@ thieu-nguyen提到的配置

所以在

中添加以下内容
  

用户名:$ PRODUCTION_DB_USER

     

密码:$ PRODUCTION_DB_PASS

config / database.yml

中生成

然后为您的本地计算机添加环境

  

PRODUCTION_DB_USER = anzels

     

PRODUCTION_DB_PASS = 1234

和heroku

  

PRODUCTION_DB_USER =用户

     

PRODUCTION_DB_PASS =“”(空)

另一种更容易的方式

  

用户名:anzels

     

密码:1234

config / database.yml

生产 **之前必须进行预编译** 然后运行命令

  

git checkout config / database.yml

刚好在GIT COMMIT命令之前 我们的想法是不提交用户名和密码,而是暂时编辑它以仅用于预编译目的

答案 1 :(得分:0)

请将usernamepassword添加到database.yml中的生产配置中,或者您需要为名称为&#34; sumeet&#34;的postgres创建新角色。

production:
  adapter: postgresql
  encoding: unicode
  database: anzels_production
  pool: 5
  username: anzels
  password: 1234