ActionView :: Template :: Error(PG ::错误:错误:列users.remember_token不存在

时间:2014-02-21 06:01:51

标签: ruby-on-rails ruby heroku

我正在完成Hartl的教程,刚刚完成第8章并试图推送到Heroku。在这样做之后,我检查了Heroku日志,发现我收到了一个错误:

2014-02-21T04:22:37.252893+00:00 app[web.1]: LINE 1: SELECT  "users".* FROM "users"  WHERE "users"."remember_toke...
2014-02-21T04:22:37.252893+00:00 app[web.1]:                                                  ^
2014-02-21T04:22:37.252893+00:00 app[web.1]: : SELECT  "users".* FROM "users"  WHERE "users"."remember_token" = 'da39a3ee5e6b4b0d3255bfef95601890afd80709' LIMIT 1
2014-02-21T04:22:37.252893+00:00 app[web.1]: LINE 1: SELECT  "users".* FROM "users"  WHERE "users"."remember_toke...
2014-02-21T04:22:37.252893+00:00 app[web.1]:                                               ^
2014-02-21T04:22:37.252893+00:00 app[web.1]: PG::Error: ERROR:  column users.remember_token does not exist
2014-02-21T04:22:37.252893+00:00 app[web.1]: PG::Error: ERROR:  column users.remember_token does not exist
2014-02-21T04:22:37.253670+00:00 app[web.1]:   Rendered layouts/_header.html.erb (3.7ms)
2014-02-21T04:22:37.253670+00:00 app[web.1]:   Rendered layouts/_header.html.erb (3.7ms)
2014-02-21T04:22:37.253827+00:00 app[web.1]: Completed 500 Internal Server Error in 7ms
2014-02-21T04:22:37.253827+00:00 app[web.1]: Completed 500 Internal Server Error in 7ms
2014-02-21T04:22:37.255866+00:00 app[web.1]:
2014-02-21T04:22:37.255866+00:00 app[web.1]: ActionView::Template::Error (PG::Error: ERROR:  column users.remember_token does not exist
2014-02-21T04:22:37.255866+00:00 app[web.1]:                                               ^

我提供了schema.rb来表明我运行了rake db:migrate: schema.rb:

    ActiveRecord::Schema.define(version: 20140219015149) do

  create_table "users", force: true do |t|
    t.string   "name"
    t.string   "email"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "password_digest"
    t.string   "remember_token"
  end

  add_index "users", ["email"], name: "index_users_on_email", unique: true
  add_index "users", ["remember_token"], name: "index_users_on_remember_token"

end

我正在为这个特定项目使用sqlite。我已经阅读了一些关于使用Postgres和区分大小写的heroku的东西。不幸的是,这对我的问题没有帮助,因为无论如何我用小写创建了列标签。

我是一个沉重的菜鸟,这是我遇到的第一个Heroku错误。我甚至无法告诉日志将错误追溯到哪里。任何你可以流下的光都非常感激。如果我需要提供任何其他文件,请告诉我。

2 个答案:

答案 0 :(得分:1)

您可能已在本地运行迁移,但是您是否已在Heroku上运行它?

heroku run rake db:migrate

将为您做到这一点

答案 1 :(得分:0)

要检查的事项:

首先,确保该列存在于本地数据库(SQLite)中:

$ rails db
sqlite> .schema users

接下来,确保Heroku(PostgreSQL)上的列存在:

$ heroku pg:psql
psql> \d+ users

可能的问题:

remember_token添加到User模型后,您可能忘记在推送到Heroku之前将代码提交到Git存储库。运行:

$ git status

这将显示您是否有任何尚未提交的修改过的文件。