我正在使用Rails 3.2.x并使用RailsAdmin。
我已经运行了很多次迁移并多次更改了我的数据库结构。因此,我得到一个PG:错误,表示对于真正不存在的表,不存在关系。
这是错误:
ActiveRecord::StatementInvalid at /
PG::Error: ERROR: relation "addresses" does not exist
LINE 5: WHERE a.attrelid = '"addresses"'::regclass
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod),
pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
简而言之,当我转到/admin
时,我的development.log中显示的错误就是:
Started GET "/admin" for 127.0.0.1 at 2013-07-04 02:24:07 -0500
Processing by RailsAdmin::MainController#dashboard as HTML
Cart Load (0.5ms) SELECT "carts".* FROM "carts" WHERE "carts"."id" = $1 LIMIT 1 [["id", 5]]
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
(0.6ms) SELECT COUNT(*) FROM "roles" INNER JOIN "users_roles" ON "roles"."id" = "users_roles"."role_id" WHERE "users_roles"."user_id" = 1 AND (((roles.name = 'admin') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL)))
(0.6ms) SELECT COUNT(*) FROM "roles" INNER JOIN "users_roles" ON "roles"."id" = "users_roles"."role_id" WHERE "users_roles"."user_id" = 1 AND (((roles.name = 'seller') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL)))
PG::Error: ERROR: relation "addresses" does not exist
LINE 5: WHERE a.attrelid = '"addresses"'::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 = '"addresses"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
Completed 500 Internal Server Error in 1269ms
ActiveRecord::StatementInvalid - PG::Error: ERROR: relation "addresses" does not exist
LINE 5: WHERE a.attrelid = '"addresses"'::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 = '"addresses"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
我该如何解决这个问题?
答案 0 :(得分:1)
我建议删除并重新创建整个数据库。在执行此操作时,您可能会遇到迁移问题 - 将它们全部修复,以便可以干净地安装应用程序。
答案 1 :(得分:0)
尽管表格不存在,但该模型是否存在。 Rails管理员期望从活动记录继承的每个模型的表。如果您的模型没有由数据库表备份,那么请不要< ActiveRecord :: Base,只需声明类,Rails_admin就会很高兴。