【发布时间】:2015-08-05 11:55:31
【问题描述】:
我在 Rails 中有一个查询,该查询正在开发中而不是在生产中。查询是:
Event.where("created_at > ? AND name = ? AND game = ?", 3.month.ago, Event::TYPE_USER_SESSION, PLATFORM_CODE).group("strftime('%Y-%m-%d 00:00:00 UTC', created_at, '-6 days', 'weekday 0')").distinct.count(:user_id)
翻译成:
SELECT DISTINCT COUNT(DISTINCT "events"."user_id") AS count_user_id, strftime('%Y-%m-%d 00:00:00 UTC', created_at, '-6 days', 'weekday 0') AS strftime_y_m_d_00_00_00_utc_created_at_6_days_weekday_0 FROM "events" WHERE (created_at > '2015-05-05 11:51:32.292908' AND name = 'user_session' AND game = 'LK') GROUP BY strftime('%Y-%m-%d 00:00:00 UTC', created_at, '-6 days', 'weekday 0')
在 development works 使用 sqlite3,但在使用 mysql 的生产中,我收到此错误:
ActiveRecord::StatementInvalid: Mysql2::Error: FUNCTION monkiland.strftime does not exist: SELECT DISTINCT COUNT(DISTINCT `events`.`user_id`) AS count_user_id, strftime('%Y-%m-%d 00:00:00 UTC', created_at, '-6 days', 'weekday 0') AS strftime_y_m_d_00_00_00_utc_created_at_6_days_weekday_0 FROM `events` WHERE (created_at > '2015-05-05 11:52:09.879454' AND name = 'user_session' AND game = 'LK') GROUP BY strftime('%Y-%m-%d 00:00:00 UTC', created_at, '-6 days', 'weekday 0')
在我的 gemfile 中
group :production do
gem 'mysql2', '0.3.17'
end
group :development do
gem 'sqlite3'
end
提前致谢!!!
【问题讨论】:
-
请注意,您不认为
strftime_y_m_d_00_00_00_utc_created_at_6_days_weekday_0的名字有点长吗? -
@PratikCJoshi rails 自动生成它
标签: mysql sql ruby-on-rails activerecord rails-activerecord