【问题标题】:Function pgp_sym_encrypt(numeric, unknown) does not exist函数 pgp_sym_encrypt(numeric, unknown) 不存在
【发布时间】:2020-07-26 15:17:48
【问题描述】:

我在我的 Django 项目中将 https://github.com/incuna/django-pgcrypto-fields 用于 pgcrypto。它可以很好地插入、更新字段。 但是当我尝试类似的东西时

MyTable.objects.filter(some_code=somecode).update(
                    some_value=some_price * F('some_units'),
                    updated_on=datetime.now()
                )

它把我扔了 psycopg2.errors.UndefinedFunction:函数 pgp_sym_encrypt(numeric, unknown) 不存在

任何帮助都会很棒。谢谢:)

【问题讨论】:

    标签: python django postgresql encryption pgcrypto


    【解决方案1】:

    要使用 pgcrypto 函数,必须在数据库中创建 pgcrypto 扩展。

    $  psql mydbname -c 'CREATE EXTENSION pgcrypto;'
    CREATE EXTENSION
    $  psql mydbname -c '\dx'
                                List of installed extensions
       Name    | Version |   Schema   |                   Description                   
    -----------+---------+------------+-------------------------------------------------
     pgcrypto  | 1.3     | public     | cryptographic functions
    ...
    

    【讨论】:

    • 是的。我已经安装了 pgcrypto。 ERROR: extension "pgcrypto" already exists
    • 那么下一个可能的原因是传递给函数的参数类型与签名中的类型不匹配。这个问题没有追溯,所以我们不知道这方面发生了什么。
    猜你喜欢
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2019-02-23
    • 2013-11-25
    • 2012-05-27
    • 2022-10-13
    相关资源
    最近更新 更多