我需要在Heroku中升级数据库以支持超过1万行,因此在Heroku上将hobby-dev升级到hobby-basic

时间:2018-10-09 20:09:14

标签: heroku heroku-postgres heroku-cli

我在Heroku中有一个应用程序,该应用程序即将达到1万行的上限,因此我必须升级Heroku数据库,但是对此我有一些疑问,并且我不完全确定自己之前在做什么对生产数据库做任何事情。

首先,我不是100%的流程,经过很多时间后,我发现this link,所以我想我必须将帐单详细信息放在帐户设置中,然后添加一个信用卡,然后我就可以创建一个基本的业余爱好数据库,并且每月自动从我的信用卡中扣除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,这是正常的吗?

1 个答案:

答案 0 :(得分:1)

我将按照您的问题顺序回答。

  1. 是的,您需要先向您的帐户添加结算信息,然后才能配置FORGE_CALLBACK_URL数据库之类的付费插件。添加帐单信息后,您将可以配置数据库。

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

    • 不要等到升级过程中就创建新数据库。可以提前完成。
    • 步骤2是不必要的。在此过程的中间无需下载备份。
    • 在步骤5中,您将hobby-basic数据库列为目标数据库,但是新数据库的颜色可能会有所不同。此信息可从ROSE
    • 获得
    • 步骤6也是不必要的。您可以像这样pg:info
  3. 通常,备份转储文件比现有数据库小得多。转储文件是压缩的二进制文件,不包含表膨胀或索引。在某些情况下,转储文件的大小可能是原始数据库的10%。