在新机器上安装rails app(本地)并获取错误PG :: UndefinedTable:ERROR:relation" users"不存在

时间:2015-08-07 07:41:29

标签: ruby-on-rails

我一定是做错了。 我做了以下工作并且工作正常:

rake db:drop:all
rake db:create:all

但是我一做到了:

rake db:migrate

我明白了:

rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "users" does not exist
LINE 5:                WHERE a.attrelid = '"users"'::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 = '"users"'::regclass
             AND a.attnum > 0 AND NOT a.attisdropped
           ORDER BY a.attnum

当我跑步时:

rails db:

我明白了:

psql (9.4.4)
Type "help" for help.

db_development=# \d
No relations found.

有什么想法吗?我跑的时候也遇到同样的错误:

rake db:reset

5 个答案:

答案 0 :(得分:1)

尝试:

rake db:migrate

在处理Rails项目时,无论是从某个远程存储库中克隆它还是从头创建它,首先要创建数据库:

rake db:create

然后是数据库表之间的关系:

rake db:migrate

您只能在开始时运行rake db:create命令一次。之后,每次添加/更改迁移时,都应运行rake db:migrate

要查看所有可用的佣金任务,您可以使用:

rake -T

答案 1 :(得分:0)

尝试运行迁移以创建用户表

rake db:migrate

通过rake db:create,您将创建一个空白数据库,但要创建所有必须迁移它的关系

答案 2 :(得分:0)

尝试运行rake db:migrate来创建缺失的表格。

答案 3 :(得分:0)

突击队员 rake db:create:all 只为您创建数据库。您需要运行迁移rake db:migrate以将表和列添加到新创建的数据库中。

还有一个rake db:setup命令:db:create,db:schema:load,db:seed,只有在你有一个模式时才有效。

您可以查看database.rake以查看所有可用命令。

答案 4 :(得分:0)

我意识到这是旧的,但这可能会有所帮助。

听起来好像错误来自实际上还没有任何用户(因为你克隆了应用程序)。

您可以尝试通过终端创建用户,也可以检查用户是否存在(

<% if user.present?%>
 #then execute this code 
<% end %>