在 Heroku 上将 hobby-dev 升级到 hobby-basic

Upgrade hobby-dev to hobby-basic on Heroku

我仍然在思考 Heroku 的计划。但我知道我将在数据库中拥有大约 300 万行,因此我需要从 hobby-dev 升级到 hobby-basic。

但是,我找不到关于此级别升级的任何文档或帮助。只有从业余爱好到标准的文档。

我是否需要创建一个新的 PG 附加组件,然后清除我的 hobby-dev 数据库?

此答案假定您使用的是 Heroku CLI。命令中的任何“YOUR_APP_NAME”实例都应替换为您正在使用的 Heroku 应用程序的应用程序名称。

您还需要准备好要升级的当前 hobby-dev 数据库的连接 URL(此处显示为 DATABASE_URL)。

1.提供一个新的 hobby-basic 数据库:

heroku addons:create heroku-postgresql:hobby-basic -a YOUR_APP_NAME

这将输出包含颜色的新数据库的名称。稍后您将需要参考它。例如:

HEROKU_POSTGRESQL_PINK_URL

2。可选择将数据库置于维护模式,以确保在复制数据库时不会向数据库添加任何数据。

heroku maintenance:on --app YOUR_APP_NAME

3。将现有的 hobby-dev 数据库复制到 hobby-basic 数据库

heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_PINK --app YOUR_APP_NAME

Heroku 现在将打印以下消息。

heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_PINK --app YOUR_APP_NAME

!    WARNING: Destructive Action
!    Transfering data from DATABASE_URL to HEROKU_POSTGRESQL_PINK
!    This command will affect the app: YOUR_APP_NAME
!    To proceed, type "YOUR_APP_NAME" or re-run this command with --confirm YOUR_APP_NAME

YOUR_APP_NAME

4.通过输入应用程序的实际名称确认数据库传输

YOUR_APP_NAME

5.推广您的新数据库

heroku pg:promote HEROKU_POSTGRESQL_PINK --app YOUR_APP_NAME

您推广的数据库的基于颜色的名称应该从您在第 1 步中得到的输出中复制。不要逐字复制和粘贴上面的行,它不会起作用。

6.如果您之前将数据库置于维护模式,请将其关闭。

heroku maintenance:off --app YOUR_APP_NAME