升级到Heroku上的postgres

nat*_*any 12 heroku postgresql-9.2

将Heroku Postgres生产数据库升级到9.2的建议方法是什么,停机时间最短?可以使用关注者,还是应该采用pgbackups/snapshots路由?

Tur*_*adg 18

直到9.4中的逻辑关注者,你必须转储和恢复(由于Craig描述的原因).您可以使用pgbackups:transfer来简化此操作.直接传输比转储和恢复更快,但要知道您不会保留快照.

下面的脚本基本上是Heroku的使用PG备份升级Heroku Postgres数据库, 并修改了pgbackups:transfer.(如果您有多个实例,比如一个登台服务器,请为每个Heroku行添加"-a"或"--remote"以指定哪个服务器.)

# get the pgbackups plugin
heroku plugins:install git://github.com/heroku/heroku-pg-extras.git

# provision new db
heroku addons:add heroku-postgresql:crane --version=9.2

# wait for it to come online, make note of new color
heroku pg:wait

# prevent new data from arriving during dump
heroku ps:scale worker=0 web=0
heroku maintenance:on

# copy over the DB. could take a while.
heroku pgbackups:transfer OLDCOLOR NEWCOLOR

# promote new database as default for DATABASE_URL
heroku pg:promote NEWCOLOR

# start everything back up and test
heroku ps:scale worker=N web=N
heroku maintenance:off
heroku open

# remove old database
heroku addons:remove HEROKU_POSTGRESQL_OLDCOLOR
Run Code Online (Sandbox Code Playgroud)

请注意,如果您比较它们之间的数据大小,由于9.2的效率,新的数据可能会小得多.(我的9.2大约是9.1的70%.)