什么可能导致object_ids跳过

时间:2012-08-23 19:07:15

标签: ruby-on-rails database rake

使用我的灯具测试数据(仅2行/表)无意中覆盖~100行/表的开发数据库后,在每个模型中创建的下一个新对象从id = 897600开始。

导致这种情况的原因是什么?这是否意味着我创建了897500个测试对象,这些对象在我的数据库中以某种方式不可见?不确定这是否是我应该关注的事情,但任何反馈都会受到赞赏。

我正在使用PostgreSQL 9.1和Rails 3.2

请告诉我哪些其他信息有助于澄清我的问题。谢谢!

1 个答案:

答案 0 :(得分:1)

Rails灯具使用灯具键的散列来确定记录id。这允许所有good stuff(引入此功能时的一些旧文章)。为了使测试运行,在测试示例中创建的记录不需要与这些哈希id冲突,因此ActiveRecord会将PK序列重置为max(id)+1,因为它会与使用fixture相接触的每个表。以下是您的PK如何达到897600等数字。