如何在heroku psql上创建表?

Posted

技术标签:

【中文标题】如何在heroku psql上创建表?【英文标题】:How to create table on heroku psql? 【发布时间】:2017-12-14 00:38:24 【问题描述】:

我正在尝试使用 postgres 设置一个简单的 Web 应用程序。在我运行应用程序之后(还没有与数据库相关的代码)。

我使用命令heroku addons:create heroku-postgresql:hobby-dev --app <app_name> 在应用程序中添加了一个 postgres db 插件 运行 heroku psql heroku pg:psql --app。 尝试根据提示创建表:CREATE TABLE example_table ( a INTEGER );

我看到了错误:

ERROR: no schema has been selected to create inLINE 1: CREATE TABLE example_table ( a INTEGER );

浏览docs,看起来用户拥有CREATE 的权限。我不确定no schema 对 postgreSQL 意味着什么。

注意:我还运行了命令 DROP OWNED BY current_user CASCADE;(成功)- 它位于 setup .sql 脚本之上,用于清理、创建表和约束并添加示例数据。不确定这是否会影响这里的任何事情。

【问题讨论】:

【参考方案1】:

https://dba.stackexchange.com/a/106067/30035

也可以先尝试:

set search_path to "$user", public;

如果没有帮助 - 尝试从上面的链接授予权限

【讨论】:

【参考方案2】:

这是命令DROP OWNED BY current_user CASCADE;,我重置了数据库,一切都按预期工作。重新运行DROP OWNED BY current_user CASCADE;,问题又出现了。

答案是避免该命令。改用 Heroku 重置命令:

heroku pg:reset --app <app_name>

【讨论】:

以上是关于如何在heroku psql上创建表?的主要内容,如果未能解决你的问题,请参考以下文章

在 Heroku 上自动化 PSQL 数据库的 PG_DUMP

Heroku “psql: FATAL: 剩余的连接槽是为非复制超级用户连接保留的”

如何浏览我的 Heroku 数据库?

如何在 psql 中使用外键约束将一个表的结构复制到另一个表?

PSQL 是在推断模式,但是如何推断?

在plsql中怎样创建表格?