Ответ 1
В версии 9.1 был изменен способ установки дополнительных модулей, которые теперь называются EXTENSIONS и установлены со специальным оператором SQL CREATE EXTENSION.
На веб-странице Postgresql говорится, что pgcrypto включен в загрузку Postgresql 9.1. Однако файл pgcrypto.sql отсутствует. Если я смотрю в каталоге share\extension, есть 3 файла:
pgcrypto - 1.0.sql pgcrypto - неупакованный - 1.0.sql pgcrypto.control
Если я попытаюсь установить с помощью
\ я 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 on Postgresql 8.4 Мне нужно установить пакет contrib для получения pgcrypto.sql. Есть ли еще один пакет, который я должен установить в Windows для Postgresql 9.1?
Спасибо.
В версии 9.1 был изменен способ установки дополнительных модулей, которые теперь называются EXTENSIONS и установлены со специальным оператором SQL CREATE EXTENSION.
Я пытался преобразовать MySQL script, в котором содержалась их функция 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" из окна запроса, но очень важно сказать, что этот script должен быть выполнен в БД, который вам нужно использовать это расширение, завершив script, чтобы убедиться, что оно установлено, проверьте в pgAdmin над вашим DB расширение seccion.
Я надеюсь, что эта помощь.
1.add расширения: создать расширение pgcrypto
2. проверьте расширения: выберите * из pg_available_extensions
3. использовать расширения: выбрать '{SHA}' || encode (дайджест ('test', 'sha1'), 'base64');