Как установить 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 12

4 ответа:

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

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

2.проверьте расширения: Выберите * из pg_available_extensions Введите описание изображения здесь

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

Введите описание изображения здесь

Я пытался преобразовать скрипт 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.

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

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