安装contrib包后pg_search dmetaphone无法正常工作

时间:2016-12-04 07:41:01

标签: ruby-on-rails rubygems pg-search

安装pq_search并运行contrib包迁移后:

class InstallSomeContribPackages < ActiveRecord::Migration
  def up
    execute 'CREATE EXTENSION pg_trgm;'
    execute 'CREATE EXTENSION fuzzystrmatch;'
  end

  def down
    execute 'DROP EXTENSION pg_trgm;'
    execute 'DROP EXTENSION fuzzystrmatch;'
  end
end

迁移dmetaphone迁移时仍然会出错:

PG::UndefinedFunction: ERROR:  function dmetaphone(text) does not exist
LINE 2:   SELECT array_to_string(ARRAY(SELECT dmetaphone(unnest(rege...

1 个答案:

答案 0 :(得分:4)

我发布了这个问题给其他任何与此斗争的人......

即使使用contrib包,我仍然需要安装fuzzystrmatch扩展。

尝试rake db:setup和rake db:test:prepare

如果不起作用,请运行它们:

在终端本地访问psql并创建扩展名:

\psql
create extension fuzzystrmatch;

在heroku上访问你的psql数据库并从终端创建扩展名:

heroku pg:psql
create extension fuzzystrmatch;

然后重新运行迁移。希望这有助于挽救别人的压力。