Как мне установить pgcrypto в postgresql 9.1 на Windows? - PullRequest
12 голосов
/ 03 ноября 2011

На веб-странице Postgresql сказано, что pgcrypto включен в загрузку для Postgresql 9.1.Однако файла pgcrypto.sql нет.Если я смотрю в каталоге share \ extension, там находятся 3 файла:

pgcrypto - 1.0.sql pgcrypto - без упаковки - 1.0.sql pgcrypto.control

Если я пытаюсь установить с

\ i pgcrypto - 1.0.sql

Я получаю кучу ошибок, подобных этой:

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

Может быть, файлы в share \ extension должны были называтьсяс помощью файла share \ contrib \ pgcrypto.sql (который не существует).

В linux на Postgresql 8.4 мне нужно установить пакет contrib, чтобы получить pgcrypto.sql.Есть ли другой пакет, который мне нужно установить на Windows для Postgresql 9.1?

Спасибо.

Ответы [ 4 ]

17 голосов
/ 04 ноября 2011

В v9.1 был изменен способ установки дополнительных модулей, теперь они называются EXTENSIONS и устанавливаются с помощью специального оператора SQL CREATE EXTENSION .

5 голосов
/ 05 сентября 2017

1.добавьте расширения: создайте расширение pgcrypto

2.проверьте расширения: выберите * из pg_available_extensions enter image description here

3.используйте расширения: выберите '{SHA}' || encode (digest ('test', 'sha1'), 'base64');

enter image description here

0 голосов
/ 05 декабря 2014

Если вам нужно использовать какое-то расширение, например, pgcrypto: «CREATE EXTENSION pgcrypto» из запроса окна, но очень важно сказать, что этот сценарий должен быть выполнен в той БД, для которой нужно использовать это расширение. После завершения скрипта, чтобы убедиться, что он установлен, проверьте pgAdmin над вашей БД секцией расширений.

Надеюсь, это поможет.

0 голосов
/ 14 ноября 2011

Я пытался преобразовать скрипт MySQL, который содержал их функцию SHA1.Наконец, выполнив команду «create extension pgcrypto», пример в документации PostgreSQL работал отлично (по крайней мере, все значения, которые я пробовал до сих пор).

Вот функция SHA1:

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

Следует отметить, что я делал все это на PostgreSQL 9.1 с помощью инструмента PgAdminIII и на 64-битной Windows 7.

...