2012-06-20 10 views
5

Próbuję uruchomić aplikację Java Jetty i Ciągle widzę ten błąd:Postgres brakuje zdolności pgcrypt?

Caused by: 
org.postgresql.util.PSQLException: ERROR: function crypt(character varying, character) does not exist| Hint: No function matches the given name and argument types. You might need to add explicit type casts.| Where: PL/pgSQL function 

Czy ktoś rozpoznaje to albo jak rozwiązać ten problem? Myślałem, że pgcrypt został prebundled w Postgres 9.1.x?

Aktualnie używam Mac OSX Lion 10.7 i zainstalowałem PostgreSa przy użyciu naparu "brew install postgres".

+1

Nawet jeśli 'pgcrypto' jest prebundled The' crypt() '' podpis jest krypta (tekst, tekst) '' i nie krypta (znak zmiennej, charakter) 'jak wynika z komunikatu o błędzie (mieć na mind 'text' jest odpowiednikiem' charakteru zmiennego'). –

Odpowiedz

10

Po prostu musiałem włączyć pgcrypto; Wystarczy wybiegł z CLI:

CREATE EXTENSION pgcrypto;

dla użytkowników Mac Radzę przeczytać więcej na ten temat na napar:

brew info postgres

+0

Dziękujemy za sugerowanie włączenia tego rozszerzenia. Sprawdzałem w PostgreSQL 9.5.3, jak automatycznie utworzyć uuid. Znalazłem https://www.postgresql.org/docs/9.5/static/uuid-ossp.html i sugeruję użycie "gen_random_uuid();" funkcjonować. Włączam to rozszerzenie i działa! 'development-db # SELECT gen_random_uuid(); gen_random_uuid -------------------------------------- 40a3e789-a685-4585-abbc- a0a4829402b7 (1 wiersz) ' – Abhi

0

To „rozszerzenie” zamiast „rozszerzeń”. Ponieważ nie mogę wprowadzić jednej zmiany postaci, musiałem opublikować nową odpowiedź.

CREATE EXTENSION pgcrypto; 
+0

Komentarz byłby w porządku, podobnie jak ten. Możesz teraz usunąć tę odpowiedź, dzięki za podpowiedź. –