ActiveRecord :: StatementInvalid:PG :: UndefinedColumn:ERROR

时间:2015-03-10 19:12:18

标签: ruby-on-rails postgresql ruby-on-rails-4

尝试运行rake db:migrate时出现错误:

ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column "plus_ids" of relation "comments" does not exist

我想在尝试从评论模型中删除属性plus_ids时,我确实做了一些时髦的事情。我不确定发生了什么。

如果我执行rake db:reset然后获取实时数据库,则它全部在本地工作,但如果我尝试执行rake db:migrate,则会再次引发错误。

如何正确摆脱plus_ids以便我可以迁移?

编辑1:这是我添加(和删除)属性时的迁移文件:

class RemovePlusIdsFromComments < ActiveRecord::Migration
  def change
    remove_column :comments, :plus_ids, :integer
  end
end

然后

class AddPlusIdsToComments < ActiveRecord::Migration
  def change
    add_column :comments, :plus_ids, :integer
  end
end

他们在迁移列表中的顺序错误,不确定原因。

编辑2:我认为向上/向下有问题,如果我运行rake db:migrate:status我得到了这个:

down    20150305203336  Remove plus ids from comments
down    20150305204404  Add plus ids to comments

有什么方法吗?

1 个答案:

答案 0 :(得分:0)

答案是运行

rake db:migrate:up VERSION=20150305204404

在现场和本地,然后

rake db:migrate

再次。现在,实时和本地数据库再次同步,迁移数据库不会引发任何错误。