mam zainstalowane rozszerzenia PostgreSQL (unaccent) zJak zrobić przedłużenie Postgres dostępne non administratora
sudo su posgres
psql create extension unaccent
i teraz mogę używać unacccent w SQL, ale tylko wtedy, gdy Jestem użytkownik Postgres.
Jak zrobić przedłużenie Postgres dostępne dla wszystkich/inny użytkownik
(Im na Ubuntu z wykorzystaniem PostgreSQL 9.3.5 zainstalowany przy użyciu 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) Wpisz "help", aby uzyskać pomoc.
dałem użytkownika rolę administratora, lecz że pomoc nie zrobił, a następnie jako sugerowane umieścić nazwę schematu w, który miał wpływ na komunikat o błędzie, ale nadal nie działał
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' dostęp do funkcji z rozszerzenia. Jeśli utworzysz rozszerzenie w swoim własnym schemacie, możesz po prostu przyznać dostęp do wszystkiego w tym schemacie. –
Jak, proszę, próbowałem "PRZYZNAJ WSZYSTKIE FUNKCJE W SCHEMA publiczne DO ubuntu" i nie miało to żadnego skutku –
@a_horse_with_no_name Próbowałem wszystkie moje schematy i nadal nie działa –