问题描述
|
我有一个Heroku应用,它正在尝试连接到EC2上的Postgres DB。这是我遇到的问题:
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应用程序上设置数据库配置。以下是一些其他可能有用的内容:
我可以使用计算机上的psgql管理员连接到postgresql db(显示端口转发和侦听主机的端口设置正确。.并且不,我不允许我的IP只输入-通配符,以便所有ips可以连接)
我在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。Establishment_connection(:external_db)时,该数据库没有.yml定义