Top.Mail.Ru
Ответы

Rails и кривой запрос

Очередная головная хворь: решили перенести dev- и test-базы на sqlite, а production оставить в mysql. Все замечательно, за исключением пачки похожих запросов (выборка количества записей, добавленных начиная с полуночи). в mysql запрос такой:
SELECT COUNT(*) FROM projects WHERE created_at >= CURDATE()
а в sqlite - вот так получается:
SELECT COUNT(*) FROM projects WHERE created_at >= date('now', 'start of day')
Соответственно, разные запросы - не есть хорошо. Конечно, можно проверять, какой адаптер используется и подсовывать правильный запрос, но хочется чего-то более красивого. Предполагается 2 пути решения проблемы: переделать запрос, чтобы он выглядел одинаково и в mysql, и в sqlite (но что-то не верится), либо формировать запрос силами ActiveRecord (ибо сейчас используется count_by_sql). Мозгов не хватает ни на то, ни на другое, ни на придумывание чего-то третьего.

Помогите, пожалуйста

По дате
По рейтингу
Аватар пользователя
Мудрец
16лет

Возникает вопрос -- а зачем вы переносите DEV на SQLite, а Live остается на MySQL? Планируется ли и в дальнейшем перенос Live на SQLite?

Иначе я не вижу смысла, а вижу один только вред -- вы будете разрабатывать на одной базе, а работать на другой, следовательно, будут одни только глюки.