【发布时间】:2015-06-11 20:36:10
【问题描述】:
我正在关注关于使用 postgresql 和 rails 4 进行多索引全文搜索的thoughtbot 教程。而且我似乎无法让索引迁移工作。我试过了
disable_ddl_transaction!
def change
add_index(:cards, :object, using: 'gin', algorithm: :concurrently)
add_index(:cards, :content, using: 'gin', algorithm: :concurrently)
add_index(:tags, :name, using: 'gin', algorithm: :concurrently)
end
和
def up
ActiveRecord::Base.connection.execute <<-SQL
CREATE INDEX CONCURRENTLY index_cards_on_object ON cards USING gin(to_tsvector('english', object));
CREATE INDEX CONCURRENTLY index_cards_on_content ON cards USING gin(to_tsvector('english', content));
CREATE INDEX CONCURRENTLY index_tags_on_name ON tags USING gin(to_tsvector('english', name));
SQL
end
def down
ActiveRecord::Base.connection.execute <<-SQL
DROP INDEX index_cards_on_object;
DROP INDEX index_cards_on_content;
DROP INDEX index_tags_on_name;
SQL
end
我收到以下错误(分别)
PG::UndefinedObject: 错误:数据类型字符变化没有访问方法“gin”的默认运算符类
和
ActiveRecord::StatementInvalid: PG::UndefinedObject: 错误: 数据类型字符变化没有访问方法“gin”的默认操作符类 PG::SyntaxError: ERROR: "CREATE" 处或附近的语法错误
欢迎所有帮助和见解,谢谢
【问题讨论】:
-
我会查看
postgresql服务器日志文件以了解将什么命令传输到数据库。
标签: postgresql ruby-on-rails-4 activerecord concurrency gwt-gin