首页 文章

Heroku Postgresql错误

提问于
浏览
1

我部署了一个使用ActiveRecord到Heroku的应用程序,我收到了一个内部服务器错误 . 它在我的本地机器上运行正常(数据库是SQLite) . 以下是错误的日志消息 . 新闻简报表只是一个没有关联的表 . 它只有一个电子邮件地址字段 . 我不知道PostgreSQL,我不确定这个问题是什么 .

"ActiveRecord::StatementInvalid - PGError: ERROR:  relation "newsletters" does not exist
:             SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
              FROM pg_attribute a LEFT JOIN pg_attrdef d
                ON a.attrelid = d.adrelid AND a.attnum = d.adnum
             WHERE a.attrelid = '"newsletters"'::regclass
               AND a.attnum > 0 AND NOT a.attisdropped
             ORDER BY a.attnum
:

这是出现错误时调用的代码 .

post :index, :map => "/newsletter" do
    email=params[:email]
    @signup=Newsletter.new(:email=>email)
    render "newsletter/index",:layout => false
  end

3 回答

  • 1

    我解决了我的问题 . 我只需要 heroku db:push sqlite://db/local.db

  • 0

    我想Heroku会找到你的本地数据库所以你只需要写:

    heroku db:push
    

    如果您想从服务器获取数据:

    heroku db:pull
    
  • 0

    这个问题的根源是ActiveRecord试图通过称为“目录查询”的东西来理解给定表的结构 . 这是对数据库的元数据关系的查询,以了解其中发生的情况 .

    这个查询假设关系已经存在,并且因为它没有,它会被一个神秘的消息炸毁 . 这可能属于“将此报告给ActiveRecord”(如果尚未修复)作为在一些常见故障情况下的次理想错误消息传递的区域 .

相关问题