首页 > 解决方案 > 我需要升级 Heroku 中的数据库以支持超过 10K 行,因此在 Heroku 上将 hobby-dev 升级为 hobby-basic

问题描述

我在 Heroku 中有一个应用程序达到 10K 行上限,所以我必须升级我的 Heroku DB,但我对此有一些疑问,在做任何事情之前我不能完全确定我在做什么生产数据库。

首先,我不是这个过程的 100%,经过很长时间我找到了这个链接,所以我猜我必须把我的账单细节放在账户设置中,添加一张信用卡,然后我可以创建一个爱好基础的数据库,每个月都会自动从我的信用卡中扣除 9 美元,对吗?

关于更改我的应用程序数据库的过程,命令将是:

  1. 首先,我会将我的应用程序置于维护模式

heroku maintenance:on --app my_app_name

  1. 然后我会做一个数据库备份并下载它

heroku pg:backups:capture --app my_app_name

heroku pg:backups:download --app my_app_name

  1. 我也会得到我的旧数据库名称

heroku pg:info --app my_app_name

  1. 然后我创建一个新的数据库

heroku addons:create heroku-postgresql:hobby-basic --app my_app_name

假设HEROKU_POSTGRESQL_ROSE_URL是您的新数据库的名称。

  1. 我将所有记录从旧数据库复制到新数据库

heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_ROSE_URL --app my_app_name

  1. 确认我写下我的应用程序的名称

my_app_name

  1. 然后我将我的新数据库指定为主数据库

heroku pg:promote HEROKU_POSTGRESQL_ROSE_URL --app my_app_name

  1. 最后我关闭了维护模式

heroku maintenance:off --app my_app_name

  1. 然后我删除了我的旧数据库

heroku addons:destroy old_db_name --app my_app_name

一切都正确吗?

编辑:所以我做了一个创建hobby-dev数据库的测试,但是在这个过程结束时,这个新数据库有 150 多行(之前它有 820 行,现在它有 970 行),这正常吗?

另外,备份的大小是 200 KB 是否正常,而在 Heroku 界面中,数据库的大小大约是 10 MB?

标签: herokuheroku-postgresheroku-cli

解决方案


我会尽量按照你提问的顺序来回答。

  1. 是的,您需要先将帐单信息添加到您的帐户,然后才能配置hobby-basic数据库等付费插件。添加账单信息后,您将被允许配置数据库。

  2. 您详细说明的升级过程效率低下。没有特别的顺序:

    • 不要等到升级过程进行到一半才创建新数据库。它可以提前完成。
    • 第 2 步是不必要的。在此过程中无需下载备份。
    • 在第 5 步中,您将ROSE数据库列为目标,但新数据库可能有不同的颜色。此信息可从pg:info
    • 步骤 6 也是不必要的。您可以像这样在一行中确认,heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_ROSE_URL --app my_app_name --confirm my_app_name
  3. 备份转储文件比现有数据库小很多是正常的。转储文件是不包含表膨胀或索引的压缩二进制文件。在某些情况下,转储文件可能是原始数据库大小的 10%。


推荐阅读