Как установить pgcrypto в postgresql 9.1 на Windows?

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

pgcrypto--1.0.язык SQL pgcrypto--unpackaged--1.0.язык SQL pgcrypto.контроль

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

i pgcrypto--1.0.в SQL

Я получаю кучу ошибок вроде этого:

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

возможно, имели в виду файлы в shareextension вызывается sharecontribpgcrypto.файл sql (который не существует).

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

спасибо.

4 ответов


в v9.1 был изменен способ установки дополнительных модулей, которые теперь называются расширениями и устанавливаются со специальной инструкцией SQL СОЗДАТЬ РАСШИРЕНИЕ.


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

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

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

enter image description here


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

здесь-это функция, т. е. SHA1:

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

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


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

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