以下错误:
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
[...]
== CreateNotizias: migrating =================================================
-- create_table(:notizias)
-> 0.0067s
-- add_index(:notizias, :data)
-> 0.0028s
== CreateNotizias: migrated (0.0097s) ========================================
从pg_dump备份加载数据传递没有错误。通过添加加载时,通过CSV加载也可以正常运行。但是如果我先删除现有的集合
Notizia.delete_all
我们通过指定的操作得到上述错误:
LINE 1: DELETE FROM "notizia"
^
: DELETE FROM "notizia"
让我感到困惑的是,为什么当查询在一个表上时,它表明RELATION不存在。它来自哪里?
上下文:将rails2站点迁移到rails3。在44个型号中,这是唯一一个挂断的型号。
答案 0 :(得分:0)
在我的情况下,出现这个问题是因为宝石&#34; rake&#34;在我的项目中。
$ gem list | grep rake
rake (0.9.6, 0.9.2.2)
我正在使用上面提到的两个版本的gem,我的项目需要版本0.9.2.2
我在使用rspec运行测试时遇到了这个问题,所以我用这个解决了这个问题:
bundle exec rspec spec/
但是如果您的案例不是时候运行测试,那么只需尝试使用&#34; bundle exec&#34;命令,例如:
bundle exec rails console
,或者
bundle exec "your task"
我用这个解决了我的问题。