按照另一个答案给出的建议,我尝试digest()
在 AWS RDS 上使用 PostgreSQL 9.3 上的函数:
devdb=> SELECT digest('blah', 'sha1');
ERROR: function digest(unknown, unknown) does not exist
LINE 1: SELECT digest('blah', 'sha1');
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
即使 pgcrypto 存在:
devdb=> SHOW rds.extensions;
btree_gin,btree_gist,chkpass,citext,cube,dblink,dict_int,dict_xsyn,earthdistance,fuzzystrmatch,hstore,intagg,intarray,isn,ltree,pgcrypto,pgrowlocks,pg_trgm,plperl,plpgsql,pltcl,postgis,postgis_tiger_geocoder,postgis_topology,sslinfo, tablefunc,tsearch2,unaccent,uuid-ossp
如何启用该digest()
功能?
更新
我已经在 AWS RDS 论坛上共同提问,将相互更新帖子。
digest()
db上似乎不存在:
devdb=> \df digest
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+------+------------------+---------------------+------
(0 rows)
Shawn@AWS在 AWS 论坛上回答了这个问题-该
rds.extension
列表显示了可用的模块,而不是已安装的模块。附录
pg_available_extensions
显示哪些扩展可用以及哪些已安装:sudo apt-get install postgresql-contrib-9.1
或取决于您的 postgres 版本(检查debian pkg或取决于您的发行版)在 postgres 中:
CREATE EXTENSION pgcrypto;