2011-11-03 19 views
10

La página web de Postgresql dice que pgcrypto está incluido en la descarga de Postgresql 9.1. Sin embargo, no hay un archivo pgcrypto.sql. Si miro en el directorio compartido \ extensión hay 3 archivos:¿Cómo instalo pgcrypto en postgresql 9.1 en Windows?

pgcrypto - 1.0.sql pgcrypto - sin envasar - 1.0.sql pgcrypto.control

Si intento instalar con

\ i pgcrypto - 1.0.sql

me sale un montón de errores de la siguiente manera:

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

Tal vez los archivos de cuota \ ext ension se suponía que fuera llamado por el archivo share \ contrib \ pgcrypto.sql (que no existe).

En linux en Postgresql 8.4 Tengo que instalar el paquete contrib para obtener pgcrypto.sql. ¿Hay otro paquete que deba instalar en Windows para Postgresql 9.1?

Gracias.

Respuesta

14

En v9.1 se modificó la forma de instalar módulos adicionales, ahora se llaman EXTENSIONES y se instalan con una instrucción SQL especial CREATE EXTENSION.

+0

entré "CREATE extensión", "CREATE pgcrypto extensión", "CREATE pgcrypto EXTENSIÓN - 1.0" y "Crear pgcrypto EXTENSIÓN - 1.0.sql" y no pasó nada. Nada nuevo aparece en Extensiones en pgAdmin. ¿Qué más necesito hacer? –

+7

'create extension pgcrypto' funciona para mí. ¿Cometió su declaración? ¿Qué te muestra 'select * from pg_available_extensions' justo después de ejecutar' CREATE EXTENSION'? –

+0

Ejecutando "crear extensión pgcrypto" desde la herramienta de consulta en pgadmin trabajado. psql tiene algunos problemas al ejecutar cygwin. Debo haber tenido un problema con la sesión psql en cygwin. –

0

Estaba tratando de convertir un script MySQL que contuviera su función SHA1. Después de hacer finalmente el comando "create extension pgcrypto", el ejemplo en la documentación de PostgreSQL funcionó perfectamente (al menos todos los valores que he probado hasta ahora).

Aquí es la función SHA1:

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

Cabe señalar que hice todo esto en PostgreSQL 9.1 con la herramienta pgAdminIII y de 64 bits de Windows 7.

0

Si necesita el uso alguna extensión, el camino es, por ejemplo, para pgcrypto: "CREATE EXTENSION pgcrypto" desde una consulta de ventana, pero es muy importante decir que este script debe ejecutarse en el DB que necesita para usar esta extensión, después de haber terminado el script para verifique que esté instalado, marque en pgAdmin sobre su DB la sección de extensiones.

Espero que esta ayuda.

1

1.Add de las extensiones: crear extensión pgcrypto

2.check de las extensiones: seleccionar * de pg_available_extensions enter image description here

3.use de las extensiones: seleccione '{} SHA' || encode (digest ('prueba', 'sha1'), 'base64');

enter image description here

Cuestiones relacionadas