Postgresql 连接Heroku时发生异常ActiveRecord::AdapterNotSpecified<-&燃气轮机;博士后(EC2)

Postgresql 连接Heroku时发生异常ActiveRecord::AdapterNotSpecified<-&燃气轮机;博士后(EC2),postgresql,amazon-ec2,heroku,Postgresql,Amazon Ec2,Heroku,我有一个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': databas

我有一个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数据库(显示端口转发和侦听主机设置正确..不,我不允许只允许我的IP进入-它的通配符使所有IP都可以连接)

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


  • 提前谢谢

    @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]
    

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

    @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.establish_connection(:external_db)时,该数据库没有.yml定义。

    问题是heroku覆盖了数据库.yml….所以当您调用ActiveRecord::Base.establish_connection时(:external_db)该db没有.yml定义

    谢谢你的提示!你完全不知道这个问题完全在Heroku设置中(而不是版本、防火墙等)。但是,我已经完全按照Heroku指定的说明进行了操作,仍然无法连接EC2上的db。是否仍然可以从Heroku控制台查看数据库配置?因此我找到了一种查找数据库配置文件的方法(put file.read(Rails.configuration.database_configuration_file))但这有点没用,因为我甚至无法连接到heroku控制台,因为应用程序正在崩溃,因为缺少db connectivitydoes
    heroku插件| grep POSTGRES
    help?谢谢你的提示!你完全明白这个问题是在heroku设置中(而不是版本、防火墙等)。但是,我已经完全按照Heroku指定的说明进行了操作,仍然无法连接EC2上的db。是否仍然可以从Heroku控制台查看数据库配置?因此我找到了一种查找数据库配置文件的方法(put file.read(Rails.configuration.database_configuration_file))但这有点没用,因为我甚至无法连接到heroku控制台,因为应用程序正在崩溃,因为缺少db connectivitydoes
    heroku插件| grep POSTGRES
    help?