超出范围的ActiveRecord :: ConnectionAdapters :: PostgreSQL :: OID :: Integer,限制为4

时间:2017-11-16 19:11:25

标签: ruby-on-rails postgresql activerecord

我在执行此操作时收到标题中的错误:

@shop.update(carrier_id: new_carrier_service.id)

new_carrier_service.idFixNum

在我的postgresql数据库中,carrier_id为:t.integer "carrier_id", limit: 8

然后当我进入postgres控制台并查找carrier_id字段时,PG说它为bigint

然后,如果我只是打开Rails控制台,并手动更新字段,我就不会收到错误,并且字段更新正常。

将字段从integer更改为bigint的迁移是:

class FixShopsCarrierIdUpDownAgain < ActiveRecord::Migration
  def up
    change_column :shops, :carrier_id, :integer, limit: 8
  end

  def down
    change_column :shops, :carrier_id, :integer, limit: 4
  end
end

我无法弄清楚发生了什么......

0 个答案:

没有答案