带有Postgres数据的Rails不按顺序返回

我刚刚将我的应用程序从MySQL转换为Postgres。 以前,对.all的请求以id顺序返回所有行。 在Postgres上,行无序返回。 同样,

Person.first 

用于返回id为1的记录,现在它有时会返回另一条记录。

如果我添加这样的订单子句:

 Person.order("id").first 

查询成功并返回第一行。 这是预期的行为吗?

这篇文章回答了你的问题:

我不认为默认情况下按ID排序,因为我认为数据库是如何返回非有序查询的。 您可以通过在模型顶部定义默认范围来对其进行排序,如下所示:

 default_scope order('id ASC') 

然后调用Model.all将等同于调用Model.order(’id ASC’)。