tutorial rails pricing postgres example create ruby-on-rails postgresql heroku

ruby-on-rails - rails - heroku postgres tutorial



Cómo habilitar módulos contrib en la base de datos Heroku Postgres (2)

Estoy tratando de usar los módulos contrib en las nuevas bases de datos compartidas de Postgres 9 en Heroku. Más específicamente, los módulos pg_trgm y fuzzystrmatch . En la documentación dice

Además, muchas extensiones complementarias están disponibles, como fuzzystrmatch, pg_trgm y acento.

Parece que no puedo encontrar ninguna documentación sobre CÓMO habilitar realmente estos módulos en una base de datos Heroku compartida. Ver la respuesta a continuación.

NOTA:

Intenté agregarlos conectándome a la base de datos con

heroku pg:psql HEROKU_POSTGRESQL_BROWN

y corriendo

create extension pg_trgm create extension fuzzystrmatch

pero después de tratar de usarlo con

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

aún decía

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.

¿Alguien sabe por qué sucede esto?


En las versiones más nuevas de Rails, debería ser suficiente hacer:

def change enable_extension "fuzzystrmatch" enable_extension "pg_trgm" end

Si necesita escribir métodos up y down , el método correspondiente para enable_extension es disable_extension .


Encontré la respuesta aquí mientras recorría . No sé por qué no apareció en ninguna de mis búsquedas de Google. Voy a dejar la pregunta aquí si alguien más usa la misma redacción para buscar esto.

Para habilitar módulos, debe agregarlos a una migración de la siguiente manera:

def up execute "create extension fuzzystrmatch" execute "create extension pg_trgm" end