You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku Postgres执行SQL脚本遇创建数据库权限拒绝问题求助

解决Heroku Postgres运行SQL脚本时的"permission denied to create database"错误

这个问题的核心原因很明确:Heroku Postgres分配给你的默认用户没有创建数据库的权限。Heroku为每个应用预创建了专属数据库,你只能在这个数据库内执行表创建、数据插入这类操作,无法新建数据库或修改全局级别的数据库配置。

下面是具体的解决步骤:

  • 调整你的SQL脚本内容
    打开./sql/daily_fixtures.sql,检查并移除所有CREATE DATABASE语句——你不需要创建新数据库,直接在Heroku已为你准备好的数据库里操作即可。另外如果脚本里有\c [database_name]这类切换数据库的命令,也要删掉,保持在当前连接的数据库上下文里执行。

  • 使用更便捷的Heroku Postgres连接方式
    你不需要手动输入host、port这些参数,Heroku提供了更简单的命令直接连接到应用的数据库,同时自动处理权限问题:

    heroku pg:psql -f ./sql/daily_fixtures.sql
    

    这个命令会自动读取应用的DATABASE_URL配置,直接连接到正确的数据库,避免手动输入参数时可能出现的错误。

  • 明确Heroku Postgres的权限边界
    Heroku Postgres的用户权限是受限的,只允许执行针对现有数据库对象的操作,比如CREATE TABLE、INSERT、SELECT、UPDATE等,不允许创建数据库、用户,或者修改全局级别的数据库设置,这是平台的安全和资源管控策略,你的脚本必须适配这个环境。

内容的提问来源于stack exchange,提问作者Richlewis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:08:44