【问题标题】:Postgrex.Error ERROR 42501 insufficient_privilege to create extension citextPostgrex.Error 错误 42501 没有足够的权限来创建扩展 citext
【发布时间】:2018-03-18 00:07:30
【问题描述】:

我正在尝试创建迁移。这是输出

MIX_ENV=prod DATABASE_URL="URL" mix ecto.migrate

[info] execute "CREATE EXTENSION citext;"
** (Postgrex.Error) ERROR 42501 (insufficient_privilege): permission denied to create extension "citext"

然而直到现在它一直在dev模式下工作。

我试过了

ALTER USER user WITH SUPERUSER

并安装了postgresql-contrib 包 但没有任何效果。

【问题讨论】:

  • 检查你是否真的为生产配置设置了用户user。此外,如果已设置,请使用psql 连接到生产数据库并尝试手动执行CREATE EXTENSION citext;。很可能您的 alter with superuser 命令不成功,或者您正在为其他用户设置它。
  • @denis.peplin Check that you have really set user user for production config. 我应该在哪里检查这个?
  • config/prod.exs 或 config/prod.secret.exs 在您的应用中。

标签: postgresql elixir phoenix-framework postgrex


【解决方案1】:

我遇到了类似的问题并且正在做:

  1. psql -d postgres、ALTER USER my_user_name WITH SUPERUSER 和
  2. 将Repo 配置中的username 设置为my_user_name

已解决问题。

所以我认为问题的答案可能是 2。因此请确保我们的应用程序使用的 DB 用户是拥有 SUPERUSER 的用户。显然,您也可以在不执行 2. 默认情况下使用什么 DB 用户名的情况下弄清楚,然后为该用户执行 1.。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 2021-01-31
    相关资源
    最近更新 更多