I installed a Postgres extension (unaccent) with
sudo su posgres
psql create extension unaccent
and now I can use unacccent in sql, but only if I am the Postgres user.
How do I make Postgres extension available to all/another user
(Im on Ubuntu using Postgres 9.3.5 installed using apt-install)
jthinksearch=# \dx;
List of installed extensions
Name | Version | Schema | Description
----------+---------+------------+---------------------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
unaccent | 1.0 | public | text search dictionary that removes accents
(2 rows)
jthinksearch=#
jthinksearch=> \du;
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication | {}
ubuntu | | {}
postgres@ip-172-31-39-147:/home/ubuntu/code/jthinksearch/reports/src/main/sql$ exit ubuntu@ip-172-31-39-147:~/code/jthinksearch/reports/src/main/sql$ psql jthinksearch psql (9.3.5) Type "help" for help.
I gave user superuser role but that didnt help, then as suggested put the schema name in , that had an effect on the error message but still didnt work
jthinksearch=# \du;
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication | {}
ubuntu | Superuser | {}
jthinksearch=# select unaccent(name) from musicbrainz.artist where id=195660;
ERROR: function unaccent(character varying) does not exist
LINE 1: select unaccent(name) from musicbrainz.artist where id=19566...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
jthinksearch=# ^C
jthinksearch=# select public.unaccent(name) from musicbrainz.artist where id=195660;
ERROR: text search dictionary "unaccent" does not exist
jthinksearch=#
grant
access to the functions from the extension. If you create the extension in its own schema, you can simply grant access to everything in that schema – Patmoreonly if I am the postgres
user and then you're grating toubuntu
user? – Gibraltarselect public.unaccent('foo')
as the ubuntu user and share what is the error you get. – Chauchaucer