在Heroku Postgres上自动增加ID的差距

时间:2016-02-23 14:03:57

标签: ruby-on-rails ruby postgresql heroku

我在Heroku上运行了一个带有Postgres数据库的Ruby Web应用程序。我注意到,在Postgres数据库被Heroku“维护”的时候,自动递增的ID在它们之间存在差距。

差距是一次性的,然后ID再次增加1。像这样:

ID   |                 Created at |
2959 | 2016-02-14 21:07:05.149797 |
2960 | 2016-02-14 21:15:05.03284  |
2961 | 2016-02-14 22:59:19.634962 |
2994 | 2016-02-15 09:25:30.969881 |
2995 | 2016-02-15 09:44:38.49678  |
2996 | 2016-02-15 09:51:00.282624 |

Heroku的维护发生在2961创建的两条记录(29942016-02-15 04:00:00)之间。

我已经看到一个解释,即失败的事务将导致在下一次成功提交时跳过ID,但我在应用程序日志中看不到任何内容,表明在此期间创建了任何记录。

2 个答案:

答案 0 :(得分:1)

请参见heroku here的答案以及有关here发生这种情况的更多信息。

答案 1 :(得分:0)

如果您的问题是记录是否在此期间丢失,则需要使用代码和日志审核来确定1.可能发生的情况以及2. 是否发生。< / p>

如果你的问题是为什么会发生这种情况或是否应该发生......那就是PostgreSQL和Heroku的实现。