Как исправить несоответствие в поиске между локальным стеком (Ruby 1.9.2, Rails 3, MySQL) и стеком Heroku (Ruby 1.9.2, Rails 3, PostgreSQL)? - PullRequest
0 голосов
/ 09 июля 2011

Мне трудно мигрировать из моего локального стека (MySQL-Rails3) в стек Heroku (PostgreSQL).Код прекрасно работает на локальной машине, но дает нежелательные результаты на Heroku.

На моем локальном компьютере:

tickets = Ticket.where(:created_at => (Time.now.midnight.utc)..(Time.now.end_of_day.utc))  

Например, если время сейчас 9 июля 2011 г., 10:10 (местное время), приведенный выше код вернет все билеты, созданные сегодня (между9 июля 2011 года 05:00 UTC и 10 июля 2011 года 05:00 UTC).

Но на Heroku тот же код возвращает билеты, созданные 9 июля 2011 UTC, независимо от времени.Таким образом, билеты, созданные 9 июля 2011 00:10 UTC, будут включены (это будут вчерашние билеты).

Насколько я понимаю, код должен работать для PostgreSQL (очевидно, это не так).Как это исправить, чтобы критерии поиска включали время на PostgreSQL?

1 Ответ

0 голосов
/ 09 июля 2011

Не могли бы вы иметь проблемы с часовым поясом? Я предполагаю, что экземпляры Heroku по умолчанию работают в UTC, потому что это действительно единственное разумное значение по умолчанию. Вы можете попытаться изменить ваш часовой пояс Heroku :

$ heroku config:add TZ=where_ever/you_are

Также обратите внимание на настройку config.time_zone.

Вам также следует переключить среду разработки на PostgreSQL, чтобы она соответствовала среде развертывания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...