Ruby on rails PG::UndefinedColumn:错误:column";oauth“在”中到期;“关系的定义”;“用户”;不存在(在Rails 5中)

Ruby on rails PG::UndefinedColumn:错误:column";oauth“在”中到期;“关系的定义”;“用户”;不存在(在Rails 5中),ruby-on-rails,ruby,postgresql,migration,ruby-on-rails-5,Ruby On Rails,Ruby,Postgresql,Migration,Ruby On Rails 5,尝试删除刚创建的列时出现以下错误 PG::UndefinedColumn:错误:关系的“oauth\u expires\u in”列 “用户”不存在 这是我的第一个迁移文件 20170709013540_add_oauth_expires_in_to_users.rb class AddOauthExpiresInToUsers < ActiveRecord::Migration[5.0] def change add_column :users, :oauth_expires

尝试删除刚创建的列时出现以下错误

PG::UndefinedColumn:错误:关系的“oauth\u expires\u in”列 “用户”不存在

这是我的第一个迁移文件

20170709013540_add_oauth_expires_in_to_users.rb
class AddOauthExpiresInToUsers < ActiveRecord::Migration[5.0]
  def change
    add_column :users, :oauth_expires_in, :integer
  end
end
然后我创建了一个新的迁移文件来删除我创建的列。见下文:

20170709111539_remove_oauth_expires_in_from_users.rb
class RemoveOauthExpiresInFromUsers < ActiveRecord::Migration[5.0]
  def change
    remove_column :users, :oauth_expires_in, :integer
  end
end
20170709111539\u从\u users.rb中删除\u oauth\u expires\u in\u
类从用户中移除OAuthexpiresInUsers
当我运行迁移时,会出现以下错误:

== 20170709111539 RemoveOauthExpiresInFromUsers: migrating ====================
-- remove_column(:users, :oauth_expires_in, :integer)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:

PG::UndefinedColumn: ERROR:  column "oauth_expires_in" of relation "users" does not exist
: ALTER TABLE "users" DROP "oauth_expires_in"
/Users/davidverbustel/code/davidverbustel/barky/db/migrate/20170709111539_remove_oauth_exp    ires_in_from_users.rb:3:in `change'
./bin/rails:4:in `require'
./bin/rails:4:in `<main>'
ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column "oauth_expires_in" of     relation "users" does not exist
: ALTER TABLE "users" DROP "oauth_expires_in"
/Users/davidverbustel/code/davidverbustel/barky/db/migrate/20170709111539_remove_oauth_exp    ires_in_from_users.rb:3:in `change'
./bin/rails:4:in `require'
./bin/rails:4:in `<main>'
PG::UndefinedColumn: ERROR:  column "oauth_expires_in" of relation "users" does not exist
/Users/davidverbustel/code/davidverbustel/barky/db/migrate/20170709111539_remove_oauth_exp    ires_in_from_users.rb:3:in `change'
./bin/rails:4:in `require'
./bin/rails:4:in `<main>'
Tasks: TOP => db:migrate
==20170709111539从用户处移除OAuthexpiresInUsers:迁移====================
--删除列(:users,:oauth\u expires\u in,:integer)
rails中止了!
StandardError:发生错误,此迁移和所有后续迁移已取消:
PG::UndefinedColumn:错误:关系“users”的“oauth\u expires\u in”列不存在
:ALTER TABLE“users”DROP“oauth\u expires\u in”
/Users/davidverbustel/code/davidverbustel/barky/db/migrate/20170709111539\u从用户中删除oauth\u exp ires\u。rb:3:in“更改”
/bin/rails:4:in'require'
/bin/rails:4:in`'
ActiveRecord::StatementInvalid:PG::UndefinedColumn:错误:关系“users”的“oauth\u expires\u”列不存在
:ALTER TABLE“users”DROP“oauth\u expires\u in”
/Users/davidverbustel/code/davidverbustel/barky/db/migrate/20170709111539\u从用户中删除oauth\u exp ires\u。rb:3:in“更改”
/bin/rails:4:in'require'
/bin/rails:4:in`'
PG::UndefinedColumn:错误:关系“users”的“oauth\u expires\u in”列不存在
/Users/davidverbustel/code/davidverbustel/barky/db/migrate/20170709111539\u从用户中删除oauth\u exp ires\u。rb:3:in“更改”
/bin/rails:4:in'require'
/bin/rails:4:in`'
任务:TOP=>db:migrate
我挠头已经有一段时间了,但是我看不出这个错误

任何想法都将不胜感激。
谢谢

*为我工作(tm)。Rails的确切版本是什么?*您是否已检查该列是否已实际添加到数据库?*删除*时不需要指定类型(:integer),生成的语句不应该是“ALTER TABLE users DROP COLUMN oauth_expires_in”?就像@pascalbetz所说的那样,首先检查是否添加了它。另外,希望您没有通过psql或pgadmin或类似的方式手动从表中删除该列。我使用的是rails 5.0。感谢使用rails数据库控制台@pascalbetz的提示,我可以看到该列丢失了,但是通过rails控制台,我可以创建一个属性为“oauth_expires_in”的用户。两者之间有什么不同?我可以通过删除迁移文件并删除schema.rb中的行来强制执行整个操作吗?您还可以执行
rake db:migrate:status
并查看所讨论的迁移是否首先成功运行。您的迁移似乎不同步?你能删除/重新创建整个数据库吗?当您退出Rails控制台并启动一个新控制台时会发生什么?
== 20170709111539 RemoveOauthExpiresInFromUsers: migrating ====================
-- remove_column(:users, :oauth_expires_in, :integer)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:

PG::UndefinedColumn: ERROR:  column "oauth_expires_in" of relation "users" does not exist
: ALTER TABLE "users" DROP "oauth_expires_in"
/Users/davidverbustel/code/davidverbustel/barky/db/migrate/20170709111539_remove_oauth_exp    ires_in_from_users.rb:3:in `change'
./bin/rails:4:in `require'
./bin/rails:4:in `<main>'
ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column "oauth_expires_in" of     relation "users" does not exist
: ALTER TABLE "users" DROP "oauth_expires_in"
/Users/davidverbustel/code/davidverbustel/barky/db/migrate/20170709111539_remove_oauth_exp    ires_in_from_users.rb:3:in `change'
./bin/rails:4:in `require'
./bin/rails:4:in `<main>'
PG::UndefinedColumn: ERROR:  column "oauth_expires_in" of relation "users" does not exist
/Users/davidverbustel/code/davidverbustel/barky/db/migrate/20170709111539_remove_oauth_exp    ires_in_from_users.rb:3:in `change'
./bin/rails:4:in `require'
./bin/rails:4:in `<main>'
Tasks: TOP => db:migrate