デプロイ サービスとして heroku を使用しています。postgres アドオン プランは 400 MB のメモリ制限を持つクレーンであり、データベースには 460 MB のデータがあります。2 日前まで、postgres サーバーが空の結果セットを応答し始めることがありました。
この状況の例を次に示します。エントリ モデルの属性があり、エントリ番号をエントリ オブジェクトに割り当てる保存コールバックの後ですが、このエントリ番号は object_id とは異なります。これがコールバック メソッドです。
def assign_entry_no
return true unless self.new_record? && !self.project.nil?
last_entry = Entry.where(:project_id => self.project_id).last
self.entry_no = last_entry.nil? ? 1 : (last_entry.entry_no + 1)
end
これが出力です。
object_id -> id
---------|----
677467 -> 3
677466 -> 2
677465 -> 1 // empty result set
677462 -> 3
677461 -> 2
677460 -> 1 // empty result set
677459 -> 31
677458 -> 30
677457 -> 29
ご覧のとおり、postgre サーバーが空の結果セットを返すことがあります。アドオン プランを 800 mb にアップグレードすれば、問題は解決すると考えました。以前にこの問題に遭遇した人はいますか? それは postgres サーバーに関するものですか?
私たちのシステム => rails 3.0.2、mri ruby 1.9.3