异常活动记录::适配器未指定在连接 Heroku <-> Postgres (EC2) 时发生



我有一个Heroku应用程序,它正试图连接到EC2上的Postgres数据库。这是我遇到的问题:

2011-05-30T23:07:48+00:00 app[web.1]: /app/.bundle/gems/ruby/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:66:in `establish_connection': database configuration does not specify adapter (ActiveRecord::AdapterNotSpecified)
2011-05-30T23:07:48+00:00 app[web.1]:   from /app/.bundle/gems/ruby/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:60:in `establish_connection'

我已经按照这里描述的heroku说明在heroku应用程序上设置了数据库配置。以下是其他一些可能有帮助的东西:

  1. 我可以在我的计算机上使用psgql管理员连接到postgresqldb(显示端口转发和侦听主机设置正确。不,我不允许只输入我的IP-它的通配符,以便所有IP都可以连接)

  2. 我在EC2上运行的postgresql版本是8.4,而Heroku通常在共享数据库上使用9.0。这可能是问题所在吗?(我没有解决这个问题的原因是我不知道在哪里可以找到pg_upgrade…)

提前感谢!

@amehta,不,8.4和9.0不是你的问题。我天真的猜测是你的配置不见了:

adapter: postgresql

这个问题完全是Heroku设置中的本地问题。尝试手动从Heroku连接到EC2:

require 'postgres'
conn = PGconn.connect('amazone-host', 5432, '', '', 'dbname', 'username', 'pass')
puts conn.exec('SELECT version()')[0]

看看是否可以进一步隔离问题。

问题是heroku覆盖了数据库.yml……因此,当您调用ActiveRecord::Base.sestablish_connection(:external_db)时,该数据库没有.yml定义

最新更新