Heroku的PostgreSQL数据库名称

40

这是我需要使用的命令来查找 Heroku 数据库名称:

$ heroku config | grep POSTGRESQL

我得到了类似于以下结果:
HEROKU_POSTGRESQL_NAVY_URL: postgres://wxjwilh:tKDSwUlfZ8Da@fr6-84-24-28-19.compute-1.amazonaws.com:52/d14grmkt

这个输出的哪一部分是我可以在命令中使用的数据库名称:

$ heroku pg:reset <DATABASE>

我尝试使用完整的网址,但出现了无效参数错误。
6个回答

59

希望每个人都能理解占位符和常量的区别。

假设有一个名为d6u5qhrlnbdfmp的数据库。那么并不需要输入

heroku pg:reset d6u5qhrlnbdfmp

相反,我们可以简单地输入

heroku pg:reset DATABASE_URL

样例输出

E:\git\stutzen>heroku pg:reset d6u5qhrlnbdfmp --app stutzen
 !    Unknown database: d6u5qhrlnbdfmp. Valid options are: DATABASE_URL, HEROKU_
POSTGRESQL_CYAN_URL

E:\git\stutzen>heroku pg:reset DATABASE_URL --app stutzen

 !    WARNING: Destructive Action
 !    This command will affect the app: stutzen
 !    To proceed, type "stutzen" or re-run this command with --confirm stutzen


> stutzen
Resetting HEROKU_POSTGRESQL_CYAN_URL (DATABASE_URL)... done

所有 heroku pg:* 命令(包括 pg-extras 中的命令)都可以使用以下任何一个作为数据库指示器:HEROKU_POSTGRESQL_NAVY_URLHEROKU_POSTGRESQL_NAVYNAVY。如果 NAVY 也是您的主要 DATABASE_URL,则也可以使用它。 - hgmnz

23

URL由以下部分组成:

scheme://username:password@host:port/database

所以,在你的情况下,数据库名称是d14grmkt


13

我在Heroku上重设数据库时遇到了困难。我发布这篇文章,因为我认为这是最直接的解决方案。要找到数据库名称,请进入应用程序文件夹并输入以下命令:

heroku pg:info

输出结果可能会像这样
=== HEROKU_POSTGRESQL_BRONZE_URL
#other stuff

要重置数据库,请键入:

heroku pg:reset HEROKU_POSTGRESQL_BRONZE_URL

您需要确认您的应用程序名称。


1
从谷歌搜索过来,试图找到类似于 heroku pg:info 的东西来列出我的数据库名称。非常好的答案,谢谢! - animatedgif

8

使用以下命令:

$ heroku pg:reset DATABASE

它将告诉您可用的数据库名称,如下所示:

! 未知数据库:DATABASE_URL。有效选项为:HEROKU_POSTGRESQL_COPPER_URL、SHARED_DATABASE

因此,请尝试使用它提供的选项,如下所示:

$ heroku pg:reset HEROKU_POSTGRESQL_COPPER_URL


2

虽然有点晚,但如果你需要数据库名称,例如将其作为附加组件添加到另一个实例中,可以运行以下命令:

heroku addons

在列表中,您将看到您的Postgres插件,在“Add-on”列中是附加的数据库应用程序的名称。

0

HEROKU 网站文档中未提及的内容:

 heroku addons:create heroku-postgresql:hobby-dev --version=12 --app "APPNAME" --name "APPNAME-database"

--app:指定您要将数据库添加到的Heroku应用程序。如果您有多个Heroku应用程序,这非常好。

--name:您想要为数据库命名的名称。我喜欢使用我的应用程序名称并在其后缀中加上“database”作为一个不错的约定。比您将获得的任意随机生成的名称更好。

APPNAME:您的应用程序名称的占位符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接