2011-11-03 7 views
10

Strona internetowa PostgreSQL mówi, że pgcrypto jest dołączone do pobierania dla PostgreSQL 9.1. Nie ma jednak pliku pgcrypto.sql. Jeśli patrzę w katalogu rozszerzenia akcji \ znajdują się 3 pliki:Jak zainstalować pgcrypto w postgresql 9.1 na Windowsie?

pgcrypto - 1.0.sql pgcrypto - bez opakowania - 1.0.sql pgcrypto.control

Gdy próbuję zainstalować z

\ i pgcrypto - 1.0.sql

mam kilka błędów takiego:

psql:pgcrypto--1.0.sql:194: ERROR: could not access file "MODULE_PATHNAME": No such file or directory 

Może plików w akcji \ ext ension miał być wywołany przez plik share \ contrib \ pgcrypto.sql (który nie istnieje).

W systemie Linux na Postgresql 8.4 Muszę zainstalować pakiet contrib, aby uzyskać pgcrypto.sql. Czy jest inny pakiet, który muszę zainstalować w systemie Windows dla PostgreSQL 9.1?

Dzięki.

Odpowiedz

14

W wersji 9.1 zmieniono sposób instalowania dodatkowych modułów. Są one teraz nazywane ROZSZERZENIA i są instalowane ze specjalnym komunikatem SQL CREATE EXTENSION.

+0

wszedłem "CREATE rozszerzenie", "CREATE EXTENSION pgcrypto", "CREATE EXTENSION pgcrypto - 1.0" i "Tworzenie EXTENSION pgcrypto - 1.0.sql" i nic się nie stało. Nic nowego nie pojawia się w Rozszerzeniach w pgAdmin. Co jeszcze muszę zrobić? –

+7

'create extension pgcrypto' działa dla mnie. Czy złożyłeś oświadczenie? Co 'select * from pg_available_extensions' pokazuje zaraz po uruchomieniu' CREATE EXTENSION'? –

+0

Uruchamianie "Utwórz rozszerzenie pgcrypto" z narzędzia kwerendy w pgadmin pracował. psql ma pewne problemy z uruchomieniem w cygwin. Musiałem mieć problem z sesją psql w cygwin. –

0

Próbowałem przekonwertować skrypt MySQL, który zawierał ich funkcję SHA1. Po wykonaniu polecenia "create extension pgcrypto", przykład z dokumentacji PostgreSQL działał idealnie (przynajmniej wszystkie wartości, które próbowałem do tej pory).

Oto funkcja SHA1:

CREATE OR REPLACE FUNCTION sha1(bytea) returns text AS $$ 
    SELECT encode(digest($1, 'sha1'), 'hex') 
$$ LANGUAGE SQL STRICT IMMUTABLE; 

Należy zauważyć, że zrobiłem wszystko na PostgreSQL 9.1 za pomocą narzędzia PgAdminIII i na 64-bitowym systemie Windows 7.

0

Jeśli potrzebujesz korzystania niektóre rozszerzenia, sposób jest na przykład dla pgcrypto: "CREATE EXTENSION pgcrypto" z kwerendy okna, ale bardzo ważne jest powiedzenie, że ten skrypt musi być wykonany w DB, że musisz użyć tego rozszerzenia, po zakończeniu skryptu do sprawdź, czy jest zainstalowany, sprawdź w pgAdmin nad swoim DB secenses rozszerzeń.

Mam nadzieję, że ta pomoc.

1

1.Add rozszerzeń: tworzyć rozszerzenia pgcrypto

2.Sprawdź rozszerzeniach: select * from pg_available_extensions enter image description here

3.Use rozszerzeniach: wybierz '{SHA}' || kodować (digest ("test", "sha1"), "base64");

enter image description here