Как установить 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 СОЗДАТЬ РАСШИРЕНИЕ.
Я пытался преобразовать скрипт 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.
надеюсь, это поможет.