我想将一个狂欢应用程序部署到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)
请帮助
答案 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 =“”(空)
config / database.yml 中用户名:anzels
密码:1234
到生产 **之前必须进行预编译** 然后运行命令
git checkout config / database.yml
刚好在GIT COMMIT命令之前 我们的想法是不提交用户名和密码,而是暂时编辑它以仅用于预编译目的
答案 1 :(得分:0)
请将username
和password
添加到database.yml
中的生产配置中,或者您需要为名称为&#34; sumeet&#34;的postgres创建新角色。
production:
adapter: postgresql
encoding: unicode
database: anzels_production
pool: 5
username: anzels
password: 1234