降级高级 Postgres 级别到标准级别有多难?
只需要创建一个标准级别的从属实例,等待从属实例追上主实例,然后交换即可吗?
还是说,理想情况下,有一种更简单(只需一个按钮)的方法可以将高级级别转换为标准级别(或反之亦然)?
降级高级 Postgres 级别到标准级别有多难?
只需要创建一个标准级别的从属实例,等待从属实例追上主实例,然后交换即可吗?
还是说,理想情况下,有一种更简单(只需一个按钮)的方法可以将高级级别转换为标准级别(或反之亦然)?
是的,Mike Curtiss更容易,但需要遵循同样的步骤,简要说明如下:
# first, list your databases
heroku pg -a <your-app-name>
# In my case, my current database is named PUCE and my old database is named WHITE, I want to copy the data from PUCE to WHITE
heroku pg:copy HEROKU_POSTGRESQL_PUCE_URL HEROKU_POSTGRESQL_WHITE_URL -a <your-app-name>
# now, I just need to make WHITE the active database
heroku pg:promote HEROKU_POSTGRESQL_WHITE_URL -a <your-app-name>
就这样。然后我从资源面板中删除了PUCE。
哦,您需要安装heroku toolbelt才能运行那些命令。 从这里安装:https://toolbelt.heroku.com/
首先,列出您的数据库
heroku pg -a <您的应用程序名称>
在我的情况下,我的当前数据库名为PUCE,旧数据库名为WHITE,我想将数据从PUCE复制到WHITE
heroku pg:copy HEROKU_POSTGRESQL_PUCE_URL HEROKU_POSTGRESQL_WHITE_URL -a <您的应用程序名称>
现在,取消关注PUCE
heroku pg:unfollow HEROKU_POSTGRESQL_PUCE_URL -a <您的应用程序名称>
现在,只需提升数据库
heroku pg:promote HEROKU_POSTGRESQL_WHITE_URL -a <您的应用程序名称>
我还通过以下方式重新启动了dynos
heroku ps:restart -a <您的应用程序名称>
为您的数据库创建一个新的follower,并等待follower追上主数据库:
heroku addons:create heroku-postgresql:standard-2 --follow HEROKU_POSTGRESQL_PUCE_URL -a <您的应用程序名称>
当follower追上主数据库时,它将变为只读查询可用 使用
heroku pg:wait
跟踪状态
heroku pg:wait -a <您的应用程序名称>
heroku pg:info -a <您的应用程序名称>
Following: HEROKU_POSTGRESQL_PUCE (DATABASE_URL) Behind By: 125 commits
heroku maintenance:on -a <您的应用程序名称>
heroku pg:info -a <您的应用程序名称>
Following: HEROKU_POSTGRESQL_PUCE_URL (DATABASE_URL) Behind By: 0 commits 如果pg信息显示落后于0,则可以进行以下查询
heroku pg:unfollow HEROKU_POSTGRESQL_WHITE_URL -a <您的应用程序名称>
heroku pg:promote HEROKU_POSTGRESQL_WHITE -a <您的应用程序名称>
正在将HEROKU_POSTGRESQL_WHITE_URL提升为DATABASE_URL...完成
heroku maintenance:off -a <your-app-name>
没有简单的方法可以降级。我向Heroku技术支持提出了这个问题,他们说降级的过程与升级完全相同(即创建一个跟随者层,然后切换到该层)。
你可以尝试在新计划上fork数据库,一旦满意就进行推广。