数据库配置不指定适配器(西纳特拉+ +的Heroku的ActiveRecord) [英] Database configuration does not specify adapter (Sinatra + Heroku + Activerecord)

查看:236
本文介绍了数据库配置不指定适配器(西纳特拉+ +的Heroku的ActiveRecord)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到一个错误(在西纳特拉+ 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.com/s/dnw41av20uoxf8w/GitHub%20Diff2.pdf~~MD~~aux 的?)

推荐答案

今天我有同样的问题,并联系寻求帮助Heroku的支持。

I had the same problem today, and contacted Heroku support for assistance.

他们指示我到最近的变化在他们的Ruby构建包,请看这里: https://开头devcenter.heroku.com/changelog-items/709

They directed me to a recent change in their Ruby build pack, see here: https://devcenter.heroku.com/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)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆