3

观看http://railscasts.com/episodes/345-hstore

我决定实现一些 hstore 列。

据我了解

execute "CREATE INDEX products_gin_properties ON products USING GIN(properties)"

或者更好地写成(Rails 4):

add_index :products, :properties, using: :gin

两者都只在 hstore 列上创建索引。

如何在 hstore 列中的键上添加索引?环顾四周,我可以做类似的事情:

execute "CREATE INDEX products_properties_name ON products (properties -> 'name')"

但是,是否有 Rails 4 方法可以做到这一点?

4

1 回答 1

3

只看这里的源代码:https ://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb#L418

    def add_index(table_name, column_name, options = {}) #:nodoc:
      index_name, index_type, index_columns, index_options, index_algorithm, index_using = add_index_options(table_name, column_name, options)
      execute "CREATE #{index_type} INDEX #{index_algorithm} #{quote_column_name(index_name)} ON #{quote_table_name(table_name)} #{index_using} (#{index_columns})#{index_options}"
    end

index_columns是逗号分隔的列列表。

它似乎不受支持。

于 2013-10-16T19:44:01.167 回答