В моем приложении Ruby on Rails есть модель Message
, в которой есть столбец created_at
и столбец status_updated_at
.Оба они являются датами.
Чтобы ускорить такие запросы, как Message.where(status: 'delivered', account_id: 11).where('status_updated_at - created_at >= ?', "180 seconds")
, я хочу добавить индекс к разнице между столбцами status_updated_at
и created_at
.
Я пробовал этот код:
class AddMessageIndicesForDashboard < ActiveRecord::Migration[5.1]
def change
add_index :messages, [:status, :account_id, :created_at, "(status_updated_at-created_at)"], name: 'dashboard_delivery_time_index'
end
end
, что приводит к PG::UndefinedColumn: ERROR: column "status_updated_at-created_at" does not exist
Странно, скажите, если бы я только хотел добавить индекс к status_udpated_at - created_at
, выполнив add_index :messages, "(status_updated_at-created_at)", name: 'dashboard_delivery_time_index'
, он будет работать.
Есть предложения?Спасибо!