PG: relationship error does not exist

I am using Rails 3.2.x as well as RailsAdmin.

I performed many migrations and changed the database structure several times. As a result, I get PG: An error stating that the relationship for the table does not exist.

This is mistake:

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 

In short, when I go to /admin , the error indicated in my .log version is this:

 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 

How to fix it?

+4
source share
2 answers

What I would suggest is to drop and rewrite the entire db. You will probably have problems when porting at the same time - fix them so that a clean installation of the application is possible.

+1
source

Although the table does not exist, does the model exist. The Rails administrator expects a table for each model that inherits from the active record. If you have a model that is not backed by a database table, then do not do <ActiveRecord :: Base, just declare the class, and Rails_admin will be happy.

0
source

Source: https://habr.com/ru/post/1489635/


All Articles