Пост-ГРЭС направляющих функциональные индексы

Как я должен ввести свои индексы multicolum, которые содержат функции в schema.rb?

например, это не работает:

add_index "temporary_events", ["templateinfoid", "campaign", "date(gw_out_time)", "messagetype"], :name => "temporary_events_campaign_tinfoid_date_messagetype"

грабли db:test:load

грабли прерываются!

PGError: ОШИБКА: столбец "дата (gw_out_time)" не существует

: CREATE INDEX "temporary_events_campaign_tinfoid_date_messagetype" НА "temporary_events" ("templateinfoid", "кампания", "дата (gw_out_time", "messagetype")

7
задан astropanic 16 July 2010 в 13:17
поделиться

1 ответ

Встроенный метод ActiveRecord для создания индексов ( add_index ) не поддерживает функции или другие дополнительные возможности. Вместо этого вы можете использовать execute для создания индекса с помощью SQL:

execute <<-SQL
  CREATE INDEX temporary_events_campaign_tinfoid_date_messagetype
  ON temporary_events(templateinfoid, campaign, date(gw_out_time), messagetype);
SQL

Обратите внимание, что использование execute в миграциях может быть проблематичным, если вы не используете формат схемы SQL ( config.active_record.schema_format =: sql ). Для получения дополнительной информации выполните поиск по запросу schema_format .

15
ответ дан 6 December 2019 в 08:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: