Ruby on rails 3.2 ActiveRecord::StatementInvalid:PG::UndefinedTable:ERROR:relation";诺蒂西亚“;不存在,但表存在

Ruby on rails 3.2 ActiveRecord::StatementInvalid:PG::UndefinedTable:ERROR:relation";诺蒂西亚“;不存在,但表存在,ruby-on-rails-3.2,postgresql-9.3,Ruby On Rails 3.2,Postgresql 9.3,出现以下错误: Notizia.count ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "notizia" does not exist LINE 5: WHERE a.attrelid = '"notizia"'::regclass ^ : SELECT a.attname

出现以下错误:

Notizia.count
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "notizia" does not exist
LINE 5:              WHERE a.attrelid = '"notizia"'::regclass
                                        ^
:             SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
              FROM pg_attribute a LEFT JOIN pg_attrdef d
                ON a.attrelid = d.adrelid AND a.attnum = d.adnum
             WHERE a.attrelid = '"notizia"'::regclass
               AND a.attnum > 0 AND NOT a.attisdropped
             ORDER BY a.attnum
正在尝试访问表数据时生成。
psql
命令
\dt
确实显示

 public | notizias                      | table | me
存在。迁移运行顺利:

class CreateNotizias < ActiveRecord::Migration
  def self.up
    create_table :notizias do |t|
      t.date :data
从pg_转储备份加载数据时无错误。通过添加加载时,通过CSV加载也不会出错。但如果我先删除现有的集合

Notizia.delete_all
我们得到的错误如上所述,具体操作如下:

LINE 1: DELETE FROM "notizia"
                    ^
: DELETE FROM "notizia"
让我感到困惑的是,当查询位于单个表上时,为什么声明关系不存在。那是从哪里来的


上下文:将rails2站点迁移到rails3。在44款车型中,这是唯一一款挂断的。

朋友,我在这里遇到了同样的问题

在我的例子中,出现这个问题是因为我的项目中gem“rake”的不兼容性

$ gem list | grep rake 
rake (0.9.6, 0.9.2.2) 
我使用了两个版本的gem,正如你在上面看到的,我的项目需要0.9.2.2版本

我在使用rspec运行测试时遇到了这个问题,因此我使用以下方法修复了这个问题:

bundle exec rspec spec/ 
但是,如果您的案例没有时间运行测试,请尝试使用“bundle exec”命令运行它,例如:

bundle exec rails console
或者


我用这个解决了我的问题。

嗯,
notizia
notizia
不同。Rails对单数名和复数名的令人沮丧的要求让你感到厌烦。哎哟。但是,对于create_表迁移,我的语法还可以。该表在postgresql中已正确命名。。。因此,存在一个转换问题。rails2版本中没有出现这种情况。所以拐点一定发生了变化。最糟糕的是,我从不喜欢rails覆盖(也不喜欢使用拐点.rb),所以我使用中性的Nomenklatara来避免它们。很明显,我已经进入了熊陷阱。除非有更好的建议,否则我会给它们一个不同的名称并相应地编辑转储文件。是的,我恐怕在这方面帮不了你。Rails/ActiveRecord方面是我试图远离的东西,我不喜欢看不见的魔法,它只是起作用(除非它不起作用,否则你就不能调试它来挽救你的生命)。不碍事的问题。我确实看到了单数和复数命名约定的逻辑。不能把英语的问题推到rails的肩上!但是,是的,有些东西可能是公开的,或者是简单的规则,比如只是一个额外的s(哪里,哦,诺蒂西亚哪里会绊倒我?)。别再唠叨了。。。向前的!
bundle exec rails console
bundle exec "your task"