Rails 4.1.15 PostgreSQL,更新为numeric(9)字段给出“没有整数类型有字节大小9”

时间:2016-05-23 21:41:31

标签: ruby-on-rails postgresql

这让我们疯狂。

我们最近通过Rails迁移向表中添加了一个数字(9,0)字段(称之为'foo')。现在,尝试更新此字段会给出:

irb(main):001:0> e = MyModel.first
irb(main):002:0> e.foo = 1
irb(main):003:0> e.save!
(0.4ms)  BEGIN
(0.4ms)  ROLLBACK
ActiveRecord::ActiveRecordError: No integer type has byte size 9. Use a numeric with precision 0 instead.

显然决定类型是整数,并将精度值作为整数的长度(字节大小)。

我们将模型剥离到基本上等级...结束而不会消失。

与PG 8.4和9.1相同的错误。

我们可以向另一个表添加一个相同的字段,它可以在那里工作,但不能在这个表中工作。

感谢您对此的任何想法!

更新:
有趣的是,数字(9)字段可以更新的表缺少lock_version字段。将lock_version添加到该表启用了乐观锁定,突然出现了问题。关闭原始失败表上的乐观锁定也有效。暂时没有线索。

0 个答案:

没有答案