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

I need to upgrade a database in Heroku to support more than 10K rows, thus upgrade hobby-dev to hobby-basic on Heroku

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

首先,我不是 100% 完成这个过程,经过很多时间我发现 this link,所以我猜我必须将我的账单明细放在帐户设置中,添加一张信用卡,然后我就可以创建一个业余爱好数据库,每月自动从我的信用卡中扣除 9 美元,对吗?

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

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

heroku maintenance:on --app my_app_name

  1. 那我做个DB备份然后下载

heroku pg:backups:capture --app my_app_name

heroku pg:backups:download --app my_app_name

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

heroku pg:info --app my_app_name

  1. 然后我新建一个DB

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?

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

  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. 备份转储文件比现有数据库小很多是正常的。转储文件是压缩的二进制文件,不包含 table 膨胀或索引。在某些情况下,转储文件可能是原始数据库大小的 10%。