13

Herokuの新しいPostgres9共有データベースでcontribモジュールを使用しようとしています。より具体的には、pg_trgmおよびfuzzystrmatchモジュール。ドキュメントにはそれが書かれています

さらに、fuzzystrmatch、pg_trgm、unaccentなどの多くの無料の拡張機能を利用できます。

共有Herokuデータベースでこれらのモジュールを実際に有効にする方法に関するドキュメントが見つからないようです。以下の回答を参照してください。

ノート:

でデータベースに接続して追加してみました

heroku pg:psql HEROKU_POSTGRESQL_BROWN

と実行中

create extension pg_trgm
create extension fuzzystrmatch

しかし、それを使用しようとした後

SELECT levenshtein('tests', 'test');

それはまだ言った

ERROR:  function levenshtein(unknown, unknown) does not existLINE 1: SELECT levenshtein('tests', 'test');
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

なぜこれが起こるのか誰か知っていますか?

4

2 に答える 2

17

Stack Overflowを精査しているときに、ここで答えが見つかりました。私のGoogle検索のいずれにも表示されなかった理由がわかりません。他の誰かがこれを検索するために同じ言葉遣いを使用する場合は、ここに質問を残します。

モジュールを有効にするには、次のようにモジュールを移行に追加する必要があります。

def up
  execute "create extension fuzzystrmatch"
  execute "create extension pg_trgm"
end
于 2012-05-25T10:17:53.700 に答える
7

Railsの新しいバージョンでは、次のことを行うだけで十分です。

def change
  enable_extension "fuzzystrmatch"
  enable_extension "pg_trgm"
end

upメソッドを作成する必要がある場合down、対応するメソッドenable_extensionはですdisable_extension

于 2014-05-06T03:06:52.800 に答える