HerokuでPostgresで発生した問題を追跡するための小さなテストアプリを作成しました:http ://snippi.com/s/xd511rf
49行目でわかるように、今日作成されたすべてのエントリを取得したいと思います。これは、 RubyGemDataMapperを使用したテストデータの最初の2つの項目になります。
このアプリをノートブック(Ubuntu 12.10、HP、Ruby 1.9.3)で実行すると、この結果が得られます。これは正しいことです。
[
{
"id": 1,
"text": "Working on some awsomenewss",
"category": 0,
"starttime": "2013-03-21T15:56:00+01:00",
"endtime": "2013-03-21T18:26:00+01:00",
"creation": "2013-03-21T16:15:21+01:00"
},
{
"id": 2,
"text": "facebooking",
"category": 0,
"starttime": "2013-03-21T20:48:00+01:00",
"endtime": "2013-03-21T22:26:00+01:00",
"creation": "2013-03-21T16:15:21+01:00"
}
]
私のデバッグコンソールでは、このSQLクエリがログに記録されます。
SELECT "id", "text", "category", "starttime", "endtime", "creation"
FROM "entries"
WHERE "starttime"
BETWEEN '2013-03-21T00:00:00+00:00'
AND '2013-03-21T23:59:59+00:00'
ORDER BY "id"
しかし、アプリをHerokuにプッシュした後、非常に奇妙なエラーが発生します。今実行すると(http://afternoon-everglades-4239.herokuapp.com/)、これが応答です。
[]
なぜ空なのですか?
データは間違いなくデータベースにあり、HerokuのこのDataclipによって証明されています:https ://dataclips.heroku.com/hygziosyxwperyctwfbhjzgbzhbj
また、「heroku pg:psql」を介してSQLコマンドを手動で実行すると、実際には次の出力で機能します。
id | テキスト| カテゴリ| 開始時間| 終了時間| 作成 ---- + ----------------------------- + ---------- + ---- ----------------- + --------------------- + ---------- ----------- 1 | いくつかのawsomenewsに取り組んでいます| 0 | 2013-03-21 15:56:00 | 2013-03-21 18:26:00 | 2013-03-21 16:15:21 2 | フェイスブック| 0 | 2013-03-21 20:48:00 | 2013-03-21 22:26:00 | 2013-03-21 16:15:21 (2行)
ログにはエラーや詳細情報は含まれていません。どちらの場合も(本番環境とローカル) 、リモートHerokuPostgreSQLデータベースを使用しました。
では、なぜこれが機能しないのですか?