PG ::错误:结果已被清除轨道加强

时间:2018-01-09 12:10:58

标签: mysql ruby-on-rails ruby activerecord serialization

在我的数据库中,我们在一列中有一个序列化值,如下所示

考虑表测试,并且归档为 meta

---------------------------------------------------------------------
ID          Name                meta
------------------------------------------------------------------------
726345      test               - :status: :success
                                 :result: !ruby/object:PG::Result {}
-------------------------------------------------------------------------

使用Active record Test.select('meta').where(:id=> 726345)

编写查询时

投掷错误是:PG::Error Exception: result has been cleared

用于重新生成列名称和ID工作正常。我用结果键找出错误,但我不知道如何解决这个问题。

任何帮助??

Rails - 5.1,ruby - 2.2.5,mysql - 5.6

提前致谢

1 个答案:

答案 0 :(得分:0)

在写入时,您序列化了空PG::Result个对象。在查询时,rails尝试使用PG::Result.new对其进行反序列化,但失败

> PG::Result.new

PG::Error: result has been cleared

要解决此问题,您只需清除该列即可。无论如何,它没有实际用途。

我真的不明白为什么你从post postgtresql序列化到mysql,虽然