数据库配置不指定适配器(西纳特拉+ +的Heroku的ActiveRecord)

编程入门 行业动态 更新时间:2024-10-24 10:17:03
本文介绍了数据库配置不指定适配器(西纳特拉+ +的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/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)

本文发布于:2023-10-16 10:27:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1497308.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:适配器   纳特   数据库   ActiveRecord   Heroku

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!