我得到一个错误(在西纳特拉+ ActiveRecord的Heroku的)的数据库配置不指定适配器。
I'm getting an error (on Sinatra + ActiveRecord Heroku) that Database configuration does not specify adapter.
从一些研究,它看起来像,这是因为Heroku的希望那里是rackup过程中没有使用环境变量。
From some research, it looks like this is because Heroku expects there to be no environmental variables used during rackup.
我删除从列出的数据库URL数据库环境文件的包膜增值经销商,但我仍然得到同样的错误。
I removed the env vars from the db environments file that listed the database URL, but I'm still getting the same error.
编辑:这也是工作只是在一天前与数据库文件不变的,所以我不知道什么可能是错误的。
This also worked just a day ago with the db files unchanged, so I'm not sure what could be wrong.
2015-09-01T02:44:40.980448+00:00 app[web.1]: I, [2015-09-01T02:44:40.980313 #3] INFO -- : Refreshing Gem list 2015-09-01T02:44:41.459544+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:171:in `spec': database configuration does not specify adapter (ActiveRecord::AdapterNotSpecified) 2015-09-01T02:44:41.459548+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.4/lib/active_record/connection_handling.rb:50:in `establish_connection' 2015-09-01T02:44:41.459550+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-activerecord-2.0.8/lib/sinatra/activerecord.rb:43:in `database=' 2015-09-01T02:44:41.459552+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1216:in `set' 2015-09-01T02:44:41.459554+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-activerecord-2.0.8/lib/sinatra/activerecord.rb:35:in `database_file=' 2015-09-01T02:44:41.459555+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1216:in `set' 2015-09-01T02:44:41.459556+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-activerecord-2.0.8/lib/sinatra/activerecord.rb:19:in `registered' 2015-09-01T02:44:41.459560+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1399:in `block in register' 2015-09-01T02:44:41.459562+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1397:in `each' 2015-09-01T02:44:41.459563+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1397:in `register' 2015-09-01T02:44:41.459565+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1977:in `register' 2015-09-01T02:44:41.459566+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:2038:in `register' 2015-09-01T02:44:41.459567+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-activerecord-2.0.8/lib/sinatra/activerecord.rb:54:in `<module:Sinatra>' 2015-09-01T02:44:41.459569+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/sinatra-activerecord-2.0.8/lib/sinatra/activerecord.rb:10:in `<top (required)>' 2015-09-01T02:44:41.459571+00:00 app[web.1]: from /app/app.rb:2:in `require' 2015-09-01T02:44:41.459575+00:00 app[web.1]: from /app/app.rb:2:in `<top (required)>' 2015-09-01T02:44:41.459576+00:00 app[web.1]: from config.ru:2:in `require' 2015-09-01T02:44:41.459578+00:00 app[web.1]: from config.ru:2:in `block in <main>' 2015-09-01T02:44:41.459587+00:00 app[web.1]: from config.ru:1:in `<main>' 2015-09-01T02:44:41.459589+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.9.0/lib/unicorn.rb:48:in `eval' 2015-09-01T02:44:41.459590+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.9.0/lib/unicorn.rb:48:in `block in builder' 2015-09-01T02:44:41.459581+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/builder.rb:55:in `instance_eval' 2015-09-01T02:44:41.459600+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bin/unicorn:23:in `load' 2015-09-01T02:44:41.459582+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/builder.rb:55:in `initialize' 2015-09-01T02:44:41.459601+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/bin/unicorn:23:in `<main>' 2015-09-01T02:44:41.459584+00:00 app[web.1]: from config.ru:1:in `new' 2015-09-01T02:44:41.459593+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.9.0/lib/unicorn/http_server.rb:768:in `build_app!' 2015-09-01T02:44:41.459595+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.9.0/lib/unicorn/http_server.rb:137:in `start' 2015-09-01T02:44:41.459598+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.9.0/bin/unicorn:126:in `<top (required)>' 2015-09-01T02:44:41.459592+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.0.0/gems/unicorn-4.9.0/lib/unicorn/http_server.rb:768:in `call' 2015-09-01T02:44:42.358161+00:00 heroku[web.1]: State changed from starting to crashed 2015-09-01T02:44:42.351187+00:00 heroku[web.1]: Process exited with status 1下面是数据库配置文件。
Here's the database config files.
#The environment variable DATABASE_URL should be in the following format: # => postgres://{user}:{password}@{host}:{port}/path configure :development, :production do db = URI.parse("REMOVED ACTUAL DB URL") ActiveRecord::Base.establish_connection( :adapter => db.scheme == 'postgres' ? 'postgresql' : db.scheme, :host => db.host, :username => db.user, :password => db.password, :database => db.path[1..-1], :encoding => 'utf8' ) #adding development REDIS config ENV["REDISTOGO_URL"] = "REMOVED ACTUAL DB URL" end configure :development do db = URI.parse('postgres://postgres:PASS@localhost/development') #adding development REDIS config ENV["REDISTOGO_URL"] = "REMOVED ACTUAL REDIS URL" ActiveRecord::Base.establish_connection( :adapter => db.scheme == 'postgres' ? 'postgresql' : db.scheme, :host => db.host, :username => db.user, :password => db.password, :database => db.path[1..-1], :encoding => 'utf8' ) end #set up the test database configure :test do db = URI.parse('postgres://postgres:PASS@localhost/test') #adding development REDIS config ENV["REDISTOGO_URL"] = "REMOVED ACTUAL DB URL" ActiveRecord::Base.establish_connection( :adapter => db.scheme == 'postgres' ? 'postgresql' : db.scheme, :host => db.host, :username => db.user, :password => db.password, :database => db.path[1..-1], :encoding => 'utf8' ) end下面是database.yml文件:
Here's the database.yml file:
development: adapter: postgresql database: development username: <%= ENV['PG_USER'] %> password: <%= ENV['PG_PASS'] %> host: localhost test: adapter: postgresql database: test username: <%= ENV['PG_USER'] %> password: <%= ENV['PG_PASS'] %> host: localhost
编辑2:看起来像危害来自于四个提交之一。下面就来看看在其中的一个什么改变:(编辑3: https://开头www.dropbox/s/dnw41av20uoxf8w/GitHub%20Diff2.pdf~~MD~~aux 的?)
推荐答案今天我有同样的问题,并联系寻求帮助Heroku的支持。
I had the same problem today, and contacted Heroku support for assistance.
他们指示我到最近的变化在他们的Ruby构建包,请看这里: https://开头devcenter.heroku/changelog-items/709
They directed me to a recent change in their Ruby build pack, see here: devcenter.heroku/changelog-items/709
我更新了我的database.yml文件,以反映这种变化,并引用DATABASE_URL进行生产,并且我的应用程序重新部署。
I updated my database.yml file to reflect the change, and reference the DATABASE_URL for production, and my app is deploying again.
production: url: <%= ENV['DATABASE_URL'] %>更多推荐
数据库配置不指定适配器(西纳特拉+ +的Heroku的ActiveRecord)
发布评论